medium generate-tsql-stored-procedures code example

Example: medium generate-tsql-stored-procedures

CREATE proc [dbo].[USP_QuerycreationSupport](@table_Name varchar(100))asbeginDECLARE @InserCols NVARCHAR(MAX)DECLARE @Inserparam NVARCHAR(MAX)DECLARE @Insertquery NVARCHAR(MAX)DECLARE @Selectquery NVARCHAR(MAX)DECLARE @Update NVARCHAR(MAX)DECLARE @DeleteQuery NVARCHAR(MAX)-- sp paramSELECT     '@'+c.name+ SPACE(1) + case cast(t.Name as nvarchar(40))   when 'nvarchar'    then t.Name+'('+cast(c.max_length as nvarchar(30))+')' 															   when 'varchar'    then t.Name+'('+cast(c.max_length as nvarchar(30))+')'															   when 'char'    then t.Name+'('+cast(c.max_length as nvarchar(30))+')'															   when 'decimal' then t.Name+'(18,2)' else t.Name end +'=null,' as colss      FROM        sys.columns cINNER JOIN     sys.types t ON c.user_type_id = t.user_type_idLEFT OUTER JOIN     sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_idLEFT OUTER JOIN     sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_idWHERE    c.object_id = OBJECT_ID(@table_Name)select 'Insert query'	SET @InserCols=  ( SELECT DISTINCT (SELECT   sc.NAME +',' FROM								   sys.tables st INNER JOIN sys.columns sc ON st.object_id = sc.object_id                                   WHERE st.name = @table_Name								   FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'))-- Return the result of the function	SELECT @InserCols=LEFT(@InserCols,LEN(@InserCols)-1)	--select @InserColsSET @Inserparam=  ( SELECT DISTINCT (SELECT   '@'+sc.NAME +',' FROM								   sys.tables st INNER JOIN sys.columns sc ON st.object_id = sc.object_id                                   WHERE st.name = @table_Name								   FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'))-- Return the result of the function	SELECT @Inserparam=LEFT(@Inserparam,LEN(@Inserparam)-1)	--select @Inserparamset @Insertquery='insert into '+@table_Name+'('+@InserCols+')'+'values'+'('+@Inserparam+')'	select @Insertqueryselect 'Update Query'	SET @Update=  ( SELECT DISTINCT (SELECT   sc.NAME +'=@'+sc.NAME+',' FROM								   sys.tables st INNER JOIN sys.columns sc ON st.object_id = sc.object_id                                   WHERE st.name = @table_Name								   FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'))-- Return the result of the function	SELECT @Update=LEFT(@Update,LEN(@Update)-1)	--select @Update	SET @Update='UPdate  '+@table_Name+'  set '+@Update	select @Update-- For select Query	select 'Select Query'	 	set @Selectquery='select '+@InserCols +' from '+ @table_Name	select @Selectquery-- For Delete Query	select 'Delete Query'	 	set @DeleteQuery='delete from  '+ @table_Name	select @DeleteQueryend--   exec USP_QuerycreationSupport @table_Name='MST_ComboMain'Step 1: Create the StoredProcedure. The attached file contains the code for creating a Stored Procedure that auto-generates SQL Queries.Step 2: Execute the StoredProcedure, passing your required table name as a parameter.execUSP_QuerycreationSupport@table_Name='mstCustomer'NB: You shouldn’t pass like [dbo].[mstApps]Once you execute the StoredProcedure as mentioned above, you get all the SQL statements as shown here. You could easily use the generated SQL statements elsewhere. You get all basic SQL statements like Select, Insert, Update & Delete.

Tags:

Misc Example