如何将存储过程输出值设置为声明变量

时间:2013-02-05 10:09:56

标签: sql sql-server-2008 tsql

My Store过程将在插入Date后返回一个ID,我成功插入数据,但每次@test值为0,但实际上我的Store过程返回的ID为123。 / p>

我的代码如下

declare @INS_ID int, @test int

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

1 个答案:

答案 0 :(得分: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。

<强> Demo on SQL Fidlle