【发布时间】:2009-02-06 14:58:56
【问题描述】:
我有一些用于生成报告的存储过程。我正在尝试构建一个报告仪表板,以显示每个报告上有多少条记录。
表格中详细说明了 SP,其中详细说明了它们应按什么顺序运行。
我有一个仪表板 SP,我在其中使用 Cursor 遍历数据库表,执行每个报表 SP,然后将 @@rowcount 保存到构成仪表板基础的临时表中。
我可以使用每个 SP 顶部的 set rowcoun off 来关闭行计数,但我找不到阻止从 EXEC sp_my_sp 命令返回的结果集的方法。
而@@FETCH_STATUS = 0 开始 将 @x 声明为 int 执行 @SP_name @x OUT 选择@x 插入@results (Short___name,Records) 值 (@shortname,@x) 从 myCursor 获取下一个到 @ShortName、@SP_Name、@Group、@Order 结尾在那里我需要抑制或重定向输出。我不想在实际的报告 SP 中这样做。
到目前为止,我想出的唯一解决方案是向每个 SP 添加一个输入参数,以说明它是为仪表板运行还是为报表运行。不要直接返回结果集,而是将其插入内存表中,然后如果我们正在运行报告,则报告内存表ONLY - 不好,因为有人必须记住这样做对于每个新的 SP
TIA
欧比伦
【问题讨论】:
标签: tsql redirect resultset suppress