Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 存储过程中结果集的总数_Sql Server_Sql Server 2008_Tsql_Sql Server 2012 - Fatal编程技术网

Sql server 存储过程中结果集的总数

Sql server 存储过程中结果集的总数,sql-server,sql-server-2008,tsql,sql-server-2012,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,在SQL Server 2008中,是否有任何方法可以获取执行存储过程后填充的结果集(表)总数 假设我有一个内部调用另一个存储过程的存储过程。我想知道它返回多少个内部称为存储过程的结果集 谁能在这方面帮助我 e、 g 提前感谢。您可以从内部过程返回带有@ROWCOUNT的输出参数,并在sp_GetReports中使用它。解决方法如何 在每个报表中创建一些计数器变量。 每次在SELECT语句之前,递增它。 然后,将其作为存储过程中的最后一个输出返回。 每个报告都应遵循此约定。您可以: 获取存储过

在SQL Server 2008中,是否有任何方法可以获取执行存储过程后填充的结果集(表)总数

假设我有一个内部调用另一个存储过程的存储过程。我想知道它返回多少个内部称为存储过程的结果集

谁能在这方面帮助我

e、 g


提前感谢。

您可以从内部过程返回带有@ROWCOUNT的输出参数,并在sp_GetReports中使用它。

解决方法如何

在每个报表中创建一些计数器变量。 每次在SELECT语句之前,递增它。 然后,将其作为存储过程中的最后一个输出返回。 每个报告都应遵循此约定。

您可以:

  • 获取存储过程中的行数,并将结果作为输出参数检索

  • 利用某种类型的外部表(必须设计此表)

这将提供从存储过程返回的行数

使用北风
去
创建或更改过程dbo.Test(
@rowCnt int输出
)
作为
从dbo.Customers中选择*
设置@rowCnt=@@ROWCOUNT
去
声明
@行计数整数
EXEC dbo.Test@rowCount输出
选择@rowCount

我怀疑这是可能的。为什么存储过程返回多个结果集?前端应用程序可能不容易使用它。根据报表要求,在动态存储过程中有多个结果集returning@BhaveshHarsora:您是否尝试过使用
@@ROWCount
?这与您的实际问题无关,但您应该避免在存储的程序。有关详细信息,请参见。Thomas,编写的过程名称只是示例,实际的过程名称不同。@@ROWCOUNT返回受最后执行的tsql影响的行数,我需要由最后一个执行的存储过程返回表计数。所以这个@ROWCOUNT在这方面对我没有帮助。
CREATE PROCEDURE sp_GetReports
(
    @reportName AS VARCHAR(50)
)
AS
BEGIN
    DECLARE @reportProcName AS VARCHAR(50)

    SELECT  @reportProcName = ReportProcName
    FROM ReportMaster
    WHERE ReportName = @reportName;

    EXEC (@reportProcName)

    /*
    * Need to get here, total numbers of Result Sets (tables) retrived.
    */


END
GO