【发布时间】:2018-01-03 19:16:29
【问题描述】:
我正在尝试编写一个存储过程,但我一直收到这个我没有定义 @address 的错误,我确实这样做了。我知道我错过了一个小东西,我应该如何改变它?
CREATE PROCEDURE search_domaintable
@link nvarchar(50),
@address nvarchar(50)
AS
EXEC ('SELECT rank , ip FROM dbo.['+@link+'] where [address]=@address ');
我也试过这个:
CREATE PROCEDURE search_domaintable
@link nvarchar(50),
@address nvarchar(50)
AS
EXEC ('SELECT rank , ip FROM dbo.['+@link+'] where [address]=['+@address+']');
但它将@address 值作为列名并告诉我这样的列不存在。
【问题讨论】:
-
好吧....你实际上并没有使用
sp_executesql -
在第一个中,没有设置@address 变量的值。其次,尝试打印出生成的字符串,看看它是否执行......它不会因为你没有字符串分隔符......请仔细阅读这篇文章。 sommarskog.se/dynamic_sql.html
-
很高兴我能帮上忙