0

次のような擬似コードを含むストアド プロシージャがあります。

ALTER PROCEDURE myProcedure(@param1 int, @param2 int, @returnCode int output)
AS 
BEGIN
   SELECT .... -- my query here

   SET @returnCode = @@ROWCOUNT
END

ただし、このストアド プロシージャを実行すると、@returnCode は NULL になります。

DECLARE @returnCode INT
EXEC myProcedure 1, 1, @returnCode
SELECT @returnCode

NULL を返します。

ただし、戻りコードを設定するのではなく、proc 内で選択を行うとSELECT @@ROWCOUNT、正しい行数が得られます。

出力パラメーターでこの行数を返すにはどうすればよいですか?

4

2 に答える 2

4

OUTPUTプロシージャの実行時にキーワードを追加します。

DECLARE @returnCode INT
EXEC myProcedure 1, 1, @returnCode OUTPUT
SELECT @returnCode
于 2015-06-26T06:53:57.037 に答える
0

出力パラメーターがありません。

CREATE PROCEDURE myProcedure(@param1 int, @param2 int, @returnCode int output)
AS 
BEGIN
   SELECT 1
   UNION 
   SELECT 2;
   SET @returnCode = @@ROWCOUNT
END

DECLARE @returnCode INT
EXEC myProcedure 1, 1, @returnCode OUTPUT
SELECT @returnCode
于 2015-06-26T06:55:55.037 に答える