[英]Data Driven Subscriptions SSRS Standard Edition 2008
我对 MSSQL 和 SSRS 还很陌生。
我正在尝试在执行以下操作的 MSSQL 2008 标准 SSRS 中创建数据驱动订阅。
将报告结果通过电子邮件发送到报告中找到的电子邮件地址。 每天跑步
例如:
Select full_name, email_address from users where (full_name = 'Mark Price')
这将使用 email_address 列来确定向谁发送电子邮件,这也必须适用于具有多个电子邮件地址的多个结果。
我正在考虑这样做的方式是订阅运行查询,如果没有找到结果,那么什么也不会发生。 但是,如果找到结果,则报告会更改订阅表中的行,以在下一分钟左右再次运行报告,并在结果中找到正确的电子邮件信息。 这是一个愚蠢的想法吗?
我发现了几篇博文声称这是有效的,但我无法理解他们的代码,无法知道它的作用。
那么,关于如何解决这个问题的任何建议,或者您是否可以建议一些已经在互联网上提供的简短描述?
我已经在 SQL Server Standard 上实现了这样的东西,以避免为 Enterprise 付费。 首先,我构建了一个名为“Schedule a DDR”(数据驱动报告)的报告。 该报告具有以下参数:
要计划的报告:满足数据测试时要触发的 SSRS 报告(包括文件夹)的名称。 例如“/Accounting/Report1”。
参数集:将用于查找要在报告中使用的参数的字符串。 例如“ABC”。
检查是否应运行报告的查询:将返回单个值(零或非零)的 SQL 查询。 零将被解释为“不运行此报告”
电子邮件收件人:以分号分隔的电子邮件收件人列表,这些收件人将收到报告(如果运行)。
请注意,“安排 DDR”报告是我们在此处实际运行的报告,它会将其输出发送给我; 它的作用是运行另一个报告——在本例中它是“/Accounting/Report1”,它是需要这些电子邮件地址的报告。 因此,“计划 DDR”并不是真正的报告,尽管它是按计划进行并运行的——它是一个构建和运行报告的小工具。
我在 SQL 中还有一个表定义如下:
CREATE TABLE [dbo].[ParameterSet](
[ID] [varchar](50) NULL,
[ParameterName] [varchar](50) NULL,
[Value] [varchar](2000) NULL
) ON [PRIMARY]
每个参数集——在本例中为“ABC”——在表中都有一组记录。 在这种情况下,记录可能是 ABC/placecode/AA 和 ABC/year/2013,这意味着 ABC 中有两个参数:placecode 和 year,它们的值分别为“AA”和“2013”。
SSRS 中“安排 DDR”报告的数据集是
DDR.dbo.DDR3 @reportName, @parameterSet, @nonZeroQuery, @toEmail;
DDR3 是一个存储过程:
CREATE PROCEDURE [dbo].[DDR3]
@reportName nvarchar(200),
@parameterSet nvarchar(200),
@nonZeroQuery nvarchar(2000),
@toEmail nvarchar(2000)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select ddr.dbo.RunADDR(@reportName,@parameterSet,@nonZeroQuery,@toEmail) as DDRresult;
END
RunADDR 是一个 CLR。 这是它如何工作的概述; 如果有人需要,我可以发布一些代码。
这让我回到了我的旧工作,在那里我使用 SQL Server 2005 Enterprise 开发盒上的数据驱动订阅编写了一个问题的解决方案,然后我沮丧地发现我们的客户只有标准版。
我当时为这篇文章添加了书签,它看起来非常有前途,但在我有机会实施它之前,我最终换了工作。
当然,它是针对 2005 年的,但其中一条评论似乎表明它在 2008 年也有效。
R-Tag支持 SQL Server 标准版的 SSRS 数据驱动报告
您可以使用第三方解决方案 SQL-RD 来创建和运行数据驱动的计划,而无需升级到 SQL 企业。 它还带有基于事件的调度(触发事件报告,包括数据库更改、文件更改、收到的电子邮件等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.