0

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

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 添加一个输入参数,以说明它是为仪表板运行还是为报表运行。与其直接返回结果集,不如将其插入内存表中,然后在我们运行报告时才报告内存表 - 不好,因为有人必须记住为每个新的 SP 都这样做

TIA

奥比龙

4

1 回答 1

1

我可以想到一种可能的解决方案,但我不确定它是否特别优雅(或者您正在寻找什么)。

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

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

于 2009-02-08T16:51:04.683 回答