【发布时间】:2018-06-14 08:17:52
【问题描述】:
我设置了一个使用存储过程创建数据集的报表。我每天使用电子邮件订阅将此报告发送给 4 位用户。报告通常没有任何数据。如何让订阅仅在报告有数据时发送电子邮件?
【问题讨论】:
标签: sql-server reporting-services ssrs-2012
我设置了一个使用存储过程创建数据集的报表。我每天使用电子邮件订阅将此报告发送给 4 位用户。报告通常没有任何数据。如何让订阅仅在报告有数据时发送电子邮件?
【问题讨论】:
标签: sql-server reporting-services ssrs-2012
如果您使用的是企业版,请使用以数据为依据的报告。如果没有,您需要先查看是否从 SP 返回了任何行,如果有,则仅执行订阅。这是伪 SQL,在没有大量上下文的情况下,但是,类似于:
IF EXISTS(SELECT 1 FROM YouTable JOIN YourOtherTable WHERE ...) BEGIN
EXEC ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData='a6c151ca-ff47-46c0-b807-ad1ac8116769';
END
【讨论】:
任何偶然发现这个的人,你可以试试这个小技巧。它会抛出一个错误,从而阻止发送报告。
IF @@ROWCOUNT = 0 RAISERROR('No Results', 16, 1);
【讨论】: