【问题标题】:Counting results of stored procedure存储过程的统计结果
【发布时间】:2009-02-19 10:28:18
【问题描述】:

我有一个存储过程返回 ID、名称、描述并且不接受输入参数。但是,我感兴趣的是我能得到多少结果。

我期待这样的工作:

SELECT COUNT(*) FROM EXEC MyStoredProcedure

但我在 SqlServer Managment Studio 中收到以下错误: 关键字“EXEC”附近的语法不正确。 你能告诉我一个小代码示例我该怎么做吗?

【问题讨论】:

    标签: sql stored-procedures


    【解决方案1】:

    这行不通。我可以建议:

    exec MyStoredProcedure
    select @@rowcount
    

    或者,您可以将计数作为输出参数返回

    【讨论】:

    【解决方案2】:

    您需要将逻辑放入存储过程中并从存储过程中返回计数。您可以在查询后立即使用@@ROWCOUNT 变量来执行此操作。这至少可以在 MS SQL Servet 中工作。

    存储过程:

    CREATE PROC MyPROC
    AS
    DECLARE @MyCount int
    
    ...
    
    SELECT * FROM MyTable WHERE ...
    
    SELECT @MyCount = @@ROWCOUNT
    
    ...
    
    return @MyCOunt
    

    调用代码:

    DECLARE @MyCount int
    
    EXEC @MyCount = EXEC MyProc
    

    【讨论】:

    • 好的,这会起作用,但是您也可以使用 SELECT COUNT(*) FROM Table。我认为他仍然想要他的数据...如果不是,他应该使用 COUNT ...
    【解决方案3】:
    SELECT @@ROWCOUNT
    

    【讨论】:

      【解决方案4】:

      编写一个新的存储过程,为您计算。

      【讨论】:

      • 一定要考虑回答问题的其他建议并避免这种情况。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多