Tsql T-SQL 2005:抑制结果集的输出

Tsql T-SQL 2005:抑制结果集的输出,tsql,redirect,resultset,suppress,Tsql,Redirect,Resultset,Suppress,我有一些用于生成报告的存储过程。我正在尝试构建一个报告仪表板,它将显示每个报告上有多少条记录 SPs在一个表中详细说明,该表详细说明了它们应以何种顺序运行 我有一个仪表板SP,在其中我使用游标遍历数据库表,执行每个报表SP,然后将@@rowcount保存到一个临时表中,该临时表构成仪表板的基础 我可以在每个SP的顶部使用set rowconn off关闭行计数,但我找不到方法停止从EXEC SP_my_SP命令返回结果集 而@@FETCH\u STATUS=0 开始 将@x声明为int exe

我有一些用于生成报告的存储过程。我正在尝试构建一个报告仪表板,它将显示每个报告上有多少条记录

SPs在一个表中详细说明,该表详细说明了它们应以何种顺序运行

我有一个仪表板SP,在其中我使用游标遍历数据库表,执行每个报表SP,然后将@@rowcount保存到一个临时表中,该临时表构成仪表板的基础

我可以在每个SP的顶部使用set rowconn off关闭行计数,但我找不到方法停止从EXEC SP_my_SP命令返回结果集

而@@FETCH\u STATUS=0 开始 将@x声明为int exec@SP_name@x OUT 选择@x 插入@results(短名称,记录)值(@shortname,@x) 从myCursor中提取下一个到@ShortName、@SP_Name、@Group、@Order 结束

在那里的某个地方,我需要抑制或重定向输出。我不想在实际报告SP中执行此操作

到目前为止,我提出的唯一解决方案是向每个SP添加一个输入参数,以说明它是针对仪表板还是针对报表运行。不要直接返回结果集,而是将其插入内存中的表中,然后仅在运行报告时报告内存中的表-这不好,因为有人必须记住为每个新SP执行此操作

短暂性脑缺血发作


欧比伦

我能想出一个可能的解决方案,但我不确定它是否特别优雅(或者你在寻找什么)

扩展SP输入参数的概念,您是否可以添加一些逻辑(CASE或IF语句),以便在脚本来自仪表板时调用Select Count()

它需要添加到每个SP中,但只要有文档记录,就不会给未来的开发人员带来太多问题

WHILE @@FETCH_STATUS = 0 BEGIN declare @x as int exec @SP_name @x OUT select @x insert into @results (Short___name,Records) values (@shortname,@x) FETCH NEXT FROM myCursor INTO @ShortName, @SP_Name,@Group,@Order END