0

我的 Store 过程将在插入日期后返回一个 ID,我成功插入数据,但每次我的@test值都是 0,但实际上我的 Store 过程返回的 ID 为 123。

我的代码如下

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 Fiddle 演示

于 2013-02-05T10:32:08.067 回答