Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中将tablename作为参数传递_Sql_Sql Server 2005 - Fatal编程技术网

如何在sql server中将tablename作为参数传递

如何在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

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 @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