我知道这是一个基本问题 - 但我无法找到完成此操作的正确方法。SQL Server - 将变量传递给存储过程时遇到问题
我需要将一个变量传递给SQL Server 2008存储过程并返回查询。
这里的存储过程:
CREATE PROCEDURE pOrders
AS
DECLARE @enteredClientID varchar(20);
DECLARE @Results table (ClientID varchar(20), Num_orders int);
BEGIN
SET NOCOUNT ON;
-- Get all the order from the client
INSERT INTO @Results
SELECT ClientID, sum(Num_orders)
FROM Orders O
WHERE O.ClientID = @enteredClientID
GROUP BY O.ClientID);
-- Insert the orders into the results table --
SELECT *
FROM @Results;
END
GO;
现在,我将执行存储过程并得到结果回来:
exec pOrders
set @enteredClientID = 'ABC123456789'
我收到此错误信息后面:
必须声明标量变量“@enteredClientID”。
但是,我声明变量....我错过了什么?
只是一个建议:它可能是有意义的使用表值函数而不是一个满足这种需求的程序......但这超出了问题的范围:-) – Rose 2012-03-12 00:07:04