Here is the dyaminc Query to create stored procedure with insert statement with columns and paramaters
DECLARE @table_name varchar(255) = 'table_name'
DECLARE @v_col varchar(MAX)
DECLARE @v_param varchar(MAX)
DECLARE @SP_param varchar(MAX)
DECLARE @sp_type varchar(10) = 'Insert'
SET @v_col = STUFF(
(SELECT ',' + '['+c.name+']'
FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = @table_name
AND c.is_identity = 0
FOR XML PATH ('')), 1, 1, ''
)
SET @v_param = STUFF(
(SELECT ',' + '@'+c.name
FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = @table_name
AND c.is_identity = 0
FOR XML PATH ('')), 1, 1, ''
)
SET @SP_param = STUFF(
(SELECT ',' + '@'+c.name+' '+y.name+' '+(CASE WHEN y.name = 'varchar' THEN '('+CAST(c.max_length as varchar)+')' ELSE '' END)
FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id
JOIN sys.types y ON y.user_type_id = c.user_type_id
WHERE t.name = @table_name
AND c.is_identity = 0
FOR XML PATH ('')), 1, 1, ''
)
Declare @Query VARCHAR(MAX)
DECLARE @SPQuery VARCHAR(MAX)
SET @SPQuery = 'CREATE PROCEDURE '+@sp_type+''+@table_name+' ('+@SP_param+')
AS BEGIN'
SET @Query='Insert Into '+@table_name+' ('+@v_col+')
Values (
'+@v_param+')
END'
PRINT(@SPQuery);
PRINT(@Query);