これが実際には出力パラメーターの問題ではなく、結果セットの問題である場合は、SpWithOutputID
を推測してください。 このようなことを行います (SELECT
を返します) 1 行 1 列):
CREATE PROCEDURE dbo.SpWithOutputID AS BEGIN SET NOCOUNT ON; SELECT ID = 4; END GO
プレ>次に
Test1
次のようになります:CREATE PROCEDURE dbo.Test1 AS BEGIN SET NOCOUNT ON; DECLARE @ID INT; CREATE TABLE #x(ID INT); INSERT #x EXEC dbo.SpWithOutputID; SELECT TOP (1) @ID = ID FROM #x; DROP TABLE #x; END GO
プレ>しかし、それはあなたにとって本当に面倒に見えませんか?単一のスカラー値に対しては、実際にはこのように動作するはずです:
CREATE PROCEDURE dbo.SpWithOutputID @ID INT OUTPUT AS BEGIN SET NOCOUNT ON; SELECT @ID = 4; END GO
プレ>実際に出力パラメーターを使用することがはるかに簡単になりました:
CREATE PROCEDURE dbo.Test1 AS BEGIN SET NOCOUNT ON; DECLARE @ID INT; EXEC dbo.SpWithOutputID @ID = @ID OUTPUT; SELECT @ID; END GO
プレ>