您好frnds我我需要通過一個表名作爲參數傳遞給存儲過程如何通過表名作爲參數在SQL Server
CREATE PROCEDURE six @tablename nvarchar
AS
SELECT * FROM + @tablename
Go
exec six Entry_sixsigma_mag
它給錯誤,如
消息102,15級,狀態1,步驟六,第3行 '+'附近的語法不正確。 消息208,級別16,狀態1,過程6,行3 無效的對象名稱'@sixsigma'。
您好frnds我我需要通過一個表名作爲參數傳遞給存儲過程如何通過表名作爲參數在SQL Server
CREATE PROCEDURE six @tablename nvarchar
AS
SELECT * FROM + @tablename
Go
exec six Entry_sixsigma_mag
它給錯誤,如
消息102,15級,狀態1,步驟六,第3行 '+'附近的語法不正確。 消息208,級別16,狀態1,過程6,行3 無效的對象名稱'@sixsigma'。
嘗試像
CREATE PROCEDURE six @tablename nvarchar(100)
AS
EXEC('SELECT * FROM ' + @tablename)
Go
exec six Entry_sixsigma_mag
但你也應該看看
一味地使用之前的。
的可能重複哎提示錯誤消息208,級別16,狀態1,行 無效的對象名稱'E'。 – Bhushan 2010-11-17 08:58:12
您需要將nvarchar更改爲nvarchar(100)或您需要的長度。您必須記住,如果您未指定NVARCHAR/VARCHAR的長度,則它將假定爲1. – 2010-11-17 09:17:54
而不是EXEC('...'),您還可以使用sp_executesql:http://msdn.microsoft.com/zh-cn/ -us /庫/ ms188001.aspx – thomaspaulb 2010-11-17 10:16:07
http://stackoverflow.com/questions/3346842/stored-procedure-pass-table-name-as-a-parameter – goodeye 2012-05-12 00:23:37