在SQL Server 2008中,有没有办法在执行存储过程后填充结果集(表)的总数。
假设我有一个内部调用另一个存储过程的存储过程。我想知道它返回的内部调用存储过程的结果集数量。
任何人都可以帮助我。
e.g。
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
提前致谢。
答案 0 :(得分:1)
您也许可以:
获取存储过程中的行数并将结果作为OUTPUT参数获取
使用某种类型的外部表(必须对此进行设计)
这为您提供了从存储过程返回的行数
chr
答案 1 :(得分:0)
解决方法怎么样?
在每个报告中创建一些计数器变量。 每次在SELECT语句之前,递增它。 然后,将其作为sproc中的最后一个输出返回。 每份报告都应遵循这一惯例。
答案 2 :(得分:-1)
您可以从内部过程返回带有@@ ROWCOUNT的输出参数,并在sp_GetReports中使用它。