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 回答