如何在sql server中将tablename作为参数传递
hello frnds我需要将表名作为参数传递给存储过程如何在sql server中将tablename作为参数传递,sql,sql-server-2005,Sql,Sql Server 2005,hello frnds我需要将表名作为参数传递给存储过程 CREATE PROCEDURE six @tablename nvarchar AS SELECT * FROM + @tablename Go exec six Entry_sixsigma_mag 它给出了类似于 Msg 102,15级,状态1,程序6,第3行 “+”附近的语法不正确。 Msg 208,16级,状态1,程序6,第3行 无效的对象名“@sixsigma”。请尝试以下操作 CREATE PROCEDURE six @t
CREATE PROCEDURE six @tablename nvarchar
AS
SELECT * FROM + @tablename
Go
exec six Entry_sixsigma_mag
它给出了类似于
Msg 102,15级,状态1,程序6,第3行
“+”附近的语法不正确。
Msg 208,16级,状态1,程序6,第3行
无效的对象名“@sixsigma”。请尝试以下操作
CREATE PROCEDURE six @tablename nvarchar(100)
AS
EXEC('SELECT * FROM ' + @tablename)
Go
exec six Entry_sixsigma_mag
看看
但你也应该看看
CREATE PROCEDURE six @tablename nvarchar(100)
AS
EXEC('SELECT * FROM ' + @tablename)
Go
exec six Entry_sixsigma_mag
看看
但你也应该看看
在盲目使用之前。嘿,它会给出错误消息208,级别16,状态1,第1行无效的对象名称“E”。您需要将nvarchar更改为nvarchar(100)或您需要的长度。您必须记住,如果不指定NVARCHAR/VARCHAR的长度,它将假定为1。您也可以使用sp_executesql来代替EXEC(“…”):嘿,它给出错误消息208,级别16,状态1,第1行无效的对象名称“E”。您需要将NVARCHAR更改为NVARCHAR(100)或您需要的长度。您必须记住,如果不指定NVARCHAR/VARCHAR的长度,它将假定为1。您还可以使用sp_executesql:Probable duplicate of Probable duplicate of of of of the