所以我的问题是,什么运行SSRS中的订阅报告?我的意思是当我订阅报告并给它一个所需的时间它应该运行并发送给我文件。这是对的吗?所以我想知道它运行的是什么?它是SQL函数中的一个过程吗?我之所以想知道这一点,是因为我希望在每次计划报告开始之前运行SQL更新。
我可以创建一个程序,在预定的时间之前完成我想要的更新,但是,将它集成到作业本身中仍然更实际
答案 0 :(得分:1)
简短回答,这些订阅通过 SQL Server代理作为数据库作业运行。
使用GUID类型名称创建它们:
一个作业步骤将具有如下命令:
exec [ReportServer].dbo.AddEvent @EventType='SharedSchedule', @EventData='8df4ff30-97d3-41f7-b3ef-9ce48bfdfbfa'
您可以使用Subscriptions
表及其MatchData
列(与作业GUID匹配)将这些作业/ GUID追溯到订阅并通过 ReportServer 数据库进行报告Catalog
表,其中包含报告数据(即通过Subscriptions.Report_OID
列链接。
您可以使用此信息来检查计划的内容,并根据此计划适当地更新您的更新。
我自己没有尝试过,但是一个选项甚至可以挂钩现有的数据库作业,但我会谨慎对待;我看不出任何问题,但也许最好不要更新任何系统创建的这类工作。