0

私の Store プロシージャは、日付の挿入後に ID を返します。データへの挿入は成功しますが、毎回@test値は 0 になりますが、実際には Store プロシージャはたとえば 123 の ID を返します。

以下の私のコード

declare @INS_ID int, @test int

EXEC @test = Ins_Data 4,'Apple','Apple','Apple',@INS_ID OUTPUT
select @test
4

1 に答える 1

1

ストアド プロシージャの戻り値と出力パラメータを混同しているようです - この手順を検討してください

CREATE PROCEDURE dbo.TestProc @i INT OUTPUT
AS
    SET @i = 2;
    RETURN 1;

次に電話すると

DECLARE @a INT, @b INT;
EXECUTE @a = dbo.TestProc @b OUT;
SELECT  @a, @b;

@a は 1 になります (RETURN 1プロシージャ内のため)、@b はプロシージャ内で 2 として設定されているため 2 になります。

SQL Fidlle のデモ

于 2013-02-05T10:32:08.067 に答える