reporting-services - SSRS如何在新数据加载到数据库时触发订阅

标签 reporting-services ssrs-2008

我已为报告创建了数据驱动的订阅。订阅从 Oracle 数据库中的表获取数据。 (查询:select * from Mytable) 我想做的是按事件对报告进行下标(按计划已经可以了)。 例如,当Oracle中的表中插入新行时,这将触发订阅并生成新的报告。 我该如何处理这个问题?谢谢!

最佳答案

我可以想到一些方法。通过一些额外的数据库设计,您可以在表中为已插入但尚未报告的行设置一个标志。然后,您可以更改数据驱动的订阅查询以运行一个存储过程来查找标志、将行返回到订阅并更新表上的标志。 然后,您可以安排数据驱动订阅以适当的时间间隔触发 - 当表中没有插入行时,没有行返回到订阅,因此它不会触发。

如果您希望报表在每次插入时触发,则另一种方法是在表上设置触发器,以便每次插入行时,它都会将代码发送到 ReportServer 数据库,如下所示:

exec [ReportServer].dbo.AddEvent @EventType='TimedSubscription', @EventData='520580b3-bd4e-4221-9254-b220bc16ca55'

上面的代码是 SQL Server 如何在作业中触发订阅的。您只需通过触发器直接调用作业即可。 @EventData 中的 GUID 是您要触发的 SubscriptionID。您必须查看订阅表(在 ReportServer 数据库中)才能弄清楚这一点。另外,如果您选择这条路线,我建议您将数据驱动订阅设置为“一次性”计划。

关于reporting-services - SSRS如何在新数据加载到数据库时触发订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777328/

相关文章:

c# - 如何在SSRS中传递参数

.net - 用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败

wcf - 使用 REST WCF 数据服务作为 SQL 报告服务的数据源

reporting-services - SSRS 2008 中的文本框格式 - 换行

reporting-services - 列表报表中的SSRS分组依据

Javascript - 通过 SSRS 2008 R2 调用 window.open 时,它在 IE 中不起作用

sql-server - SSDT 在 Visual Studio 2010 SP1 中不起作用

tsql - 查看SSRS报表生成的SQL查询的简单方法?

reporting-services - 组中的交替行背景颜色

reporting-services - SSRS : Can I know if user selected "ALL" in multivalued param?