SSRS - 如何有条件地将报告发送到邮件地址

时间:2010-07-01 20:53:47

标签: reporting-services

让我指明一下环境。客户端具有用于在SQL Server数据库中输入订单的UI。 Windows服务另一台机器正在以特定的时间间隔从数据库处理这些订单。有时Windows服务会停止,然后订单堆积起来。为了避免这种情况,我创建了一个以5分钟为间隔运行的SQL Server报告。它会检查处理的订单数量并创建状态报告。我想要的是,如果处理订单的数量为零,则报告将邮寄给系统管理员。然后,他将检查托管服务的机器并重新启动服务,以避免所有返工。所以问题是如何实现这种有条件的报告传递。简而言之,如果计数为零,则不会邮寄报告,否则必须报告。

2 个答案:

答案 0 :(得分:2)

这已经晚了4年,但对于任何偶然发现这一点的人来说,Data Driven Subscription都可以解决问题。

简而言之,您可以创建一个查询,如果有数据则返回收件人,如果没有任何数据则返回NULL。

答案 1 :(得分:0)

这是SSRS 2005的常见问题(不确定2008年) - 没有简单的方法可以阻止发送空报告。

http://blogs.msdn.com/b/bimusings/archive/2005/07/29/445080.aspx

我必须使用的解决方案(是的,我知道这是丑陋,低效,有点令人尴尬......),是在存储过程中运行您的搜索查询。如果找不到行,则会导致错误。如果找到行,请重新运行查询。

SELECT * FROM TABLE

IF @@RowCount = 0
BEGIN
    SELECT 1/0
ELSE
SELECT * FROM TABLE
END

返回错误将阻止订阅通过电子邮件发送报告。