public void GENERATE_DB_SCRIPT_Update() { if (Generate_fromDatabase == true) { Table_Name = The_Table_Name.Text; } else { Table_Name = Manual_Table_Name.Text; } Database_Script_Output_StringText += "/***********************************************************/" + Environment.NewLine; Database_Script_Output_StringText += "/*************************************************/" + Environment.NewLine; Database_Script_Output_StringText += "/****** - UPDATE STORED PROCEDURE - ******/" + Environment.NewLine; Database_Script_Output_StringText += "/*************************************************/" + Environment.NewLine; Database_Script_Output_StringText += "/***********************************************************/" + Environment.NewLine; //UPDATE Database_Script_Output_StringText += "/****** Object: StoredProcedure [dbo].[SP_DMCS_UPDATE_" + Table_Name.ToUpper() + "] Script Date: " + DateTime.Now + " ******/" + Environment.NewLine; Database_Script_Output_StringText += "IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SP_DMCS_UPDATE_" + Table_Name.ToUpper() + "]') AND type in (N'P', N'PC'))" + Environment.NewLine; Database_Script_Output_StringText += "DROP PROCEDURE [dbo].[SP_DMCS_UPDATE_" + Table_Name.ToUpper() + "]" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "SET ANSI_NULLS ON" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "SET QUOTED_IDENTIFIER ON" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "CREATE PROCEDURE [dbo].[SP_DMCS_UPDATE_" + Table_Name.ToUpper() + "]" + Environment.NewLine; for (int i = 0; i < DB_Array.Length - 1; i++) { script_generator script_generator = new script_generator(); script_generator = script_generator.Select(Table_Name, DB_Array[i]); //check for percisionable value if (script_generator.result == 0 || DB_Type_Array[i] == "text" || DB_Type_Array[i] == "geography" || DB_Type_Array[i] == "image") { if (i == DB_Array.Length - 2) { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + Environment.NewLine; } else { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + "," + Environment.NewLine; } } //check for MAX else if (script_generator.result == -1) { if (i == DB_Array.Length - 2) { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + "(MAX)" + Environment.NewLine; } else { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + "(MAX)," + Environment.NewLine; } } //All others else { if (i == DB_Array.Length - 2) { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + "(" + script_generator.result + ")" + Environment.NewLine; } else { Database_Script_Output_StringText += " @" + DB_Array[i] + " as " + DB_Type_Array[i] + "(" + script_generator.result + ")," + Environment.NewLine; } } } Database_Script_Output_StringText += "AS" + Environment.NewLine; Database_Script_Output_StringText += "BEGIN" + Environment.NewLine; Database_Script_Output_StringText += " -- SET NOCOUNT ON added to prevent extra result sets from" + Environment.NewLine; Database_Script_Output_StringText += " -- interfering with SELECT statements." + Environment.NewLine; Database_Script_Output_StringText += " SET NOCOUNT ON;" + Environment.NewLine; for (int i = 1; i < DB_Array.Length - 1; i++) { if (DB_Type_Array[i] == "varchar" || DB_Type_Array[i] == "char") { Database_Script_Output_StringText += " IF @" + DB_Array[i] + " = ''" + Environment.NewLine; Database_Script_Output_StringText += " BEGIN" + Environment.NewLine; Database_Script_Output_StringText += " SET @" + DB_Array[i] + " = null" + Environment.NewLine; Database_Script_Output_StringText += " END" + Environment.NewLine; } else if (DB_Type_Array[i] == "datetime") { Database_Script_Output_StringText += " IF @" + DB_Array[i] + " = '9/9/1900 12:00:00 AM'" + Environment.NewLine; Database_Script_Output_StringText += " BEGIN" + Environment.NewLine; Database_Script_Output_StringText += " SET @" + DB_Array[i] + " = null" + Environment.NewLine; Database_Script_Output_StringText += " END" + Environment.NewLine; } else if (DB_Type_Array[i] == "text" || DB_Type_Array[i] == "geography" || DB_Type_Array[i] == "image") { } else { Database_Script_Output_StringText += " IF @" + DB_Array[i] + " = 0" + Environment.NewLine; Database_Script_Output_StringText += " BEGIN" + Environment.NewLine; Database_Script_Output_StringText += " SET @" + DB_Array[i] + " = null" + Environment.NewLine; Database_Script_Output_StringText += " END" + Environment.NewLine; } } Database_Script_Output_StringText += " UPDATE [dbo].[" + Table_Name + "]" + Environment.NewLine; Database_Script_Output_StringText += " SET" + Environment.NewLine; for (int i = 1; i < DB_Array.Length - 1; i++) { if (i == DB_Array.Length - 1 - 1) { Database_Script_Output_StringText += " [" + DB_Array[i] + "] = @" + DB_Array[i] + Environment.NewLine; } else { Database_Script_Output_StringText += " [" + DB_Array[i] + "] = @" + DB_Array[i] + "," + Environment.NewLine; } } Database_Script_Output_StringText += " WHERE " + DB_Array[0] + " = @" + DB_Array[0] + Environment.NewLine; Database_Script_Output_StringText += "END" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; }
public void GENERATE_DB_SCRIPT_Create_Table() { if (Generate_fromDatabase == true) { Table_Name = The_Table_Name.Text; } else { Table_Name = Manual_Table_Name.Text; } Database_Script_Output_StringText += "/****** Object: Table [dbo].[" + Table_Name + "] Script Date: " + DateTime.Now + " ******/" + Environment.NewLine; Database_Script_Output_StringText += "SET ANSI_NULLS ON" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "SET QUOTED_IDENTIFIER ON" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "SET ANSI_PADDING ON" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "CREATE TABLE [dbo].[" + Table_Name + "](" + Environment.NewLine; Database_Script_Output_StringText += " [" + DB_Array[0] + "] " + DB_Type_Array[0] + " IDENTITY(1,1) " + Null_Array[0] + "," + Environment.NewLine; for (int i = 1; i < DB_Array.Length - 1; i++) { script_generator script_generator = new script_generator(); script_generator = script_generator.Select(Table_Name, DB_Array[i]); //check for percisionable value if (script_generator.result == 0) { Database_Script_Output_StringText += " [" + DB_Array[i] + "] " + DB_Type_Array[i] + " " + Null_Array[i] + "," + Environment.NewLine; } //check for MAX else if (script_generator.result == -1) { Database_Script_Output_StringText += " [" + DB_Array[i] + "] " + DB_Type_Array[i] + "(MAX) " + Null_Array[i] + "," + Environment.NewLine; } //All others else { Database_Script_Output_StringText += " [" + DB_Array[i] + "] " + DB_Type_Array[i] + "(" + script_generator.result + ") " + Null_Array[i] + "," + Environment.NewLine; } } Database_Script_Output_StringText += " CONSTRAINT [" + Table_Name + "_" + DB_Array[0] + "_pk] PRIMARY KEY CLUSTERED " + Environment.NewLine; Database_Script_Output_StringText += "(" + Environment.NewLine; Database_Script_Output_StringText += " [" + DB_Array[0] + "] ASC" + Environment.NewLine; Database_Script_Output_StringText += ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]" + Environment.NewLine; Database_Script_Output_StringText += ") ON [PRIMARY] " + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "SET ANSI_PADDING OFF" + Environment.NewLine; Database_Script_Output_StringText += "GO" + Environment.NewLine; Database_Script_Output_StringText += "/*************************************************/" + Environment.NewLine; Database_Script_Output_StringText += "/****** FK TEMPLATE - NEEDS ACCURATE DATA - ******/" + Environment.NewLine; Database_Script_Output_StringText += "/*************************************************/" + Environment.NewLine; Database_Script_Output_StringText += "/********** ALTER TABLE [dbo].[THIS_TABLE_NAME] WITH CHECK ADD CONSTRAINT [NAME_OF_CONSTRAINT] FOREIGN KEY([FK_ON_THIS_TABLE]) **********/" + Environment.NewLine; Database_Script_Output_StringText += "/********** REFERENCES [dbo].[OTHER_TABLE_NAME] ([OTHER_TABLE_FK]) **********/" + Environment.NewLine; Database_Script_Output_StringText += "/********** GO **********/" + Environment.NewLine; Database_Script_Output_StringText += "/********** ALTER TABLE [dbo].[THIS_TABLE_NAME] CHECK CONSTRAINT [NAME_OF_CONSTRAINT] **********/" + Environment.NewLine; Database_Script_Output_StringText += "/********** GO **********/" + Environment.NewLine; }