【发布时间】:2014-10-11 09:59:39
【问题描述】:
我有'must declare scalar variable' 错误,我知道这是因为我的变量在代码中不存在:
CREATE PROCEDURE SP_POLLS
@NAME VARCHAR (30)
AS
BEGIN
IF @NAME = 'all'
SELECT
NAME, X
FROM
data
WHERE
NAME = @NAME
END
EXEC SP_POLLS
但我很难理解应该将它放在动态 sql 中的哪个位置。
此存储过程与 Excel 中的 ADO 调用啮合,这使我无法将 NAME 和 x 输入 Excel 单元格。
任何帮助将不胜感激。
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本没有前缀! -
对于变量@NAME 你得到了这个错误??
-
收到此错误时
-
如果我尝试使用 EXEC SP_POLLS 创建存储过程后,我会收到此错误
-
@user3705238 ,很高兴知道它有效!
标签: sql sql-server excel stored-procedures