【问题标题】:Why is SQL rowcount not returning in my stored procedure output parameter?为什么我的存储过程输出参数中没有返回 SQL 行数?
【发布时间】:2015-06-26 06:52:09
【问题描述】:

我有一个这样的伪代码存储过程:

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 - 我会得到正确的行数。

如何在输出参数中返回此行数?

【问题讨论】:

    标签: sql-server rowcount output-parameter


    【解决方案1】:

    在执行过程时附加OUTPUT关键字:

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

    【讨论】:

      【解决方案2】:

      你错过了输出参数。

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-12
        • 2013-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-21
        • 1970-01-01
        • 2021-06-29
        相关资源
        最近更新 更多