how to pass tablename as parameter in sql server

2019-07-26 17:21发布

问题:

hello frnds i need to pass a table name as parameter to stored procedure

CREATE PROCEDURE six @tablename nvarchar
AS
SELECT * FROM + @tablename
Go
exec six Entry_sixsigma_mag

it gives error like

Msg 102, Level 15, State 1, Procedure six, Line 3 Incorrect syntax near '+'. Msg 208, Level 16, State 1, Procedure six, Line 3 Invalid object name '@sixsigma'.

回答1:

Try something like

CREATE PROCEDURE six @tablename nvarchar(100) 
AS 
EXEC('SELECT * FROM ' + @tablename)
Go 
exec six Entry_sixsigma_mag

Have a look at EXECUTE (Transact-SQL)

But you should also have a look at

  • SQL Injection
  • Dynamic SQL & SQL injection

before using this blindly.