Как запустить автоматическую генерацию отчета на основании изменения значения записи в БД SQL? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть требование, когда отчет должен автоматически генерироваться в SSRS 2014 при каждом изменении записи в конкретной таблице. Есть ли средства для достижения этой цели? Например, нижеприведенный фрагмент - моя таблица. Всякий раз, когда day_status изменяется с Open 'O' на Close 'C', отчет должен быть сгенерирован. Таблица в моей БД

1 Ответ

0 голосов
/ 04 июля 2019

Что вы можете сделать, это настроить подписку на отчет, а затем настроить триггер на своей таблице, чтобы запустить эту подписку на отчет об изменении статуса.

Запустите это, чтобы узнать имя задания подписки

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

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


where c.[Name]  like '%your report%'

Вы можете использовать имя задания сверху для запуска подписки следующим образом:

USE [msdb]
EXEC sp_start_job @job_name = 'the GUID of the Job from the above query'

вы можете обернутьэто в хранимой процедуре и использовать его как часть вашего триггера

...