これは基本的な質問ですが、これを行う正しい方法を理解できません。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"を宣言しなければなりません。
しかし、私は変数を宣言しています....私は何が欠けていますか?ストアドプロシージャを呼び出す手順
DECLARE @enteredClientID varchar(20) OUTPUT
--Thenインサートと設定アイデンティティ
SELECT SCOPE_IDENTITY() AS @enteredClientID
--When --in
だけの提案を:あなたが望んでいたとしてそれを宣言するには、それがテーブル値関数を使用しても意味がありこの必要性を満たす手続きの代わりに...それは質問の範囲外です:-) – Rose