SQL Server存储过程 - 在“选择”查询中使用行计数

时间:2012-02-26 17:18:59

标签: sql-server-2005 stored-procedures rowcount

我的存储过程(SQL Server 2005)返回一个数据集,其中一个字段取决于查询返回的行数。我可以做一个简化的第一个查询,允许我得到@@ ROWCOUNT但是,在这种情况下,过程返回两个集合,这不是我想要的。

我尝试将第一个查询放在WITH语句中,但是没有找到提取行计数的语法并将其放在我可以在第二个查询中使用的变量中。另一种方法是从第一个查询中获取@@ ROWCOUNT,并告诉过程只返回第二个查询的结果。

可能有更好的方法,但我在SQL方面的专业知识非常有限......

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这是你要找的吗?如果没有,请您详细描述您的问题(可能是代码片段)

    alter procedure ComplicatedStoredProcedure as
    begin
        declare @lastQueryRowCount int

        -- Storing the number of rows returned by the first query into a variable.
        select @lastQueryRowCount =
            -- First resultset (not seen by caller).
            (select count(*) from A where ID > 100)

        -- Second resultset. This will be the actual result returned from the SP.
        select * from B where SomeDependentField > @lastQueryRowCount
    end