仅在报告

时间:2018-06-14 08:17:52

标签: sql-server reporting-services ssrs-2012

我已经设置了一个使用存储过程创建数据集的报表。我每天使用电子邮件订阅向4位用户发送此报告。报告通常不会有任何数据。如何让订阅仅在报告包含数据时发送电子邮件?

2 个答案:

答案 0 :(得分:0)

如果您使用的是企业版,请使用数据驱动的报告。如果没有,您需要先查看是否从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

答案 1 :(得分:0)

遇到此问题的任何其他人,您都可以尝试这个小技巧。它会抛出一个错误,这将阻止发送报告。

IF @@ROWCOUNT = 0 RAISERROR('No Results', 16, 1);