Sql server 存储过程中结果集的总数
在SQL Server 2008中,是否有任何方法可以获取执行存储过程后填充的结果集(表)总数 假设我有一个内部调用另一个存储过程的存储过程。我想知道它返回多少个内部称为存储过程的结果集 谁能在这方面帮助我 e、 gSql 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语句之前,递增它。 然后,将其作为存储过程中的最后一个输出返回。 每个报告都应遵循此约定。您可以: 获取存储过
提前感谢。您可以从内部过程返回带有@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