2013-11-04 38 views
1

我已为报表创建了数据驱动的订阅。订阅从Oracle数据库的表中获取数据。 (查询:select * from Mytable) 我想要做的是按事件标记报告(已按计划工作)。 例如,当Oracle中的表中插入新行时,将触发订阅并生成新报告。 我如何解决这个问题?谢谢!SSRS如何在将新数据加载到数据库时触发订阅

回答

2

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

如果你希望报告在火中的每一个插入,那么另一种方法是设置一个触发你的桌子上,使每一个行插入的时候,把它放到了Report Server数据库发送代码,如下所示:

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

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

相关问题