使用数据库插入触发器发布报告

时间:2011-09-12 13:52:36

标签: reporting-services

是否可以使用标准版的SQL Server 2008 R2基于数据库插入触发器分发报告?触发器将查找某个列以具有特定值,这将指示是时候触发报告。这种情况不会经常发生,可能一天发生几次。

这一定是一种常见的情况,但我找不到任何关于它的信息,这必然意味着我提出了错误的问题。 (我是SQL Server的新手。)

使用FireEvent的TSQL?

谢谢,
麦克

2 个答案:

答案 0 :(得分:0)

您不希望使用触发器的原因是,如果报告已关闭,您将无法插入/更新/删除。

你有一些闲暇时间(5分钟左右)吗?如果是这样,触发器将发送到不同的表以进行更改,并且每隔五分钟就有一个工作要查看该表以进行更改。

答案 1 :(得分:0)

是否有人厌恶检查应用程序中的值,然后使用report execution webservice从那里执行并传递报告?我不喜欢数据库触发器启动外部进程的想法。太多笨重的配置依赖性和失败的机会。

如果你真的想要追求这个,这似乎是最简单的方式(它需要报告服务和应用程序数据库在同一个实例上):

  • 创建以所需格式提供报告的报告服务订阅
  • 打开SQL Server代理程序作业列表,获取与创建的订阅对应的作业名称的唯一标识符(您必须查看作业创建和上次/下次运行日期时间,以查找与您的作业相关的作业订阅)
  • 创建执行msdb.dbo.sp_start_job过程的触发器,传递与您的订阅匹配的作业名称

看看我对笨重的依赖关系的意思?如果可能的话,我肯定会坚持检查值并在应用程序层中提交报告。