Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL Server : insert stored procedure with dynamic table name

I am trying to create a stored procedure for inserting new data. Basically I am getting an error about 'declare the table variable@tablename'.

I tried:

create procedure [dbo].[spInsertProc](@table_name varchar(max))
as
begin
    declare @name nvarchar(128);
    declare @description nchar(255);
    declare @tablename varchar(max);
    --declare @tablename as table;

    set @tablename = @table_name;

    Insert Into @tablename ([name], [description])
    Values (@name, @description)
end

Another question is this stored procedure secure since I am not using a query string, right?

like image 283
SpcCode Avatar asked Jun 17 '26 19:06

SpcCode


1 Answers

Prepare dynamic insert statement as below:

CREATE procedure [dbo].[spInsertProc](@table_name varchar(max))
as
begin
  declare @name varchar(50)='Sandip';
  declare @description varchar(50)='SE'; 

  Declare @Query VARCHAR(MAX)
  SET @Query='Insert Into '+@table_name+' ([name], [description])
    Values (
       '''+@name+''',
        '''+@description+''')'
  EXEC(@Query);
  PRINT(@Query); 
end
like image 152
Sandip - Frontend Developer Avatar answered Jun 19 '26 08:06

Sandip - Frontend Developer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!