0

我正在尝试创建一个将历史订阅错误记录到新表中的过程。

我试图通过使用 ExecutionLogStorage 中的数据来做到这一点,但是我看不到这些数据与特定 SubscriptionID 的关系。我可以将它加入 ReportID,但由于每个报告有多个订阅,这并不能满足我的需要。

我试过谷歌搜索各种脚本,实际上没有一个直接链接到 SubscriptionID。

我需要能够记录一天中成功和不成功的订阅执行的日志,然后将通过 SQL Server 代理作业将其插入到新表中。

4

1 回答 1

0

运行以下查询:

SELECT
sj.[name] AS [Job Name],
rs.SubscriptionID,
c.[Name] AS [Report Name],
c.[Path],
su.Description,
su.EventType,
su.LastStatus,
su.LastRunTime


FROM msdb..sysjobs AS sj 

INNER JOIN ReportServer..ReportSchedule AS rs
ON sj.[name] = CAST(rs.ScheduleID AS NVARCHAR(128)) 

INNER JOIN ReportServer..Subscriptions AS su
ON rs.SubscriptionID = su.SubscriptionID

INNER JOIN ReportServer..[Catalog] c
ON su.Report_OID = c.ItemID

这应该为您提供所有订阅报告及其历史记录的列表。

您应该能够以此为指导来做您需要做的其他事情。

于 2019-09-04T20:46:10.527 回答