2009-09-01 3 views

Antwort

0

Es scheint nicht eine einfache Methode, dies herauszufinden.

Die folgende Abfrage listet den Abonnement-IDs und die Berichte, auf die sie verlinken

select s.SubscriptionID, c.Path 
from ReportServer.dbo.Subscriptions as s 
JOIN ReportServer.dbo.Catalog  as c 
on ItemID = Report_OID 

Der Abonnement-ID wird dann in dem Arbeitsschritt Bezug genommen wird, in folgendem Format.

exec ReportServer.dbo.AddEvent @EventType='TimedSubscription', @EventData='~subscriptionID~' 

Es sollte möglich sein, eine Abfrage zu schreiben, sie alle zusammen zu kommen, aber ich weiß nicht jetzt haben Zeit. Ich werde versuchen, die Frage später zu aktualisieren.

+0

Dank sehr viel zog –

3

Hier ist eine query I blogged about eine Weile zurück, dass die Verbindung nicht:

;WITH cte (job_id, job_name, execution_time, execution_order) 
AS 
( 
SELECT DISTINCT j.job_id 
    ,j.name 
    ,CONVERT(datetime, STUFF(STUFF(run_date,7,0,'/'),5,0,'/') 
     + SPACE(1) 
     + STUFF(STUFF(RIGHT('000000' + CONVERT(varchar(20), run_time), 6),5,0,':'),3,0,':')) 
    ,ROW_NUMBER() OVER (PARTITION BY j.job_id ORDER BY CONVERT(datetime, STUFF(STUFF(run_date,7,0,'/'),5,0,'/') 
     + SPACE(1) 
     + STUFF(STUFF(RIGHT('000000' + CONVERT(varchar(20), run_time), 6),5,0,':'),3,0,':')) DESC) 
FROM msdb.dbo.sysjobs j 
    INNER JOIN msdb.dbo.syscategories c ON j.category_id = c.category_id 
    LEFT OUTER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id 
WHERE c.name ='Report Server' 
) 
SELECT 
    x.job_name 
    ,c.name 
    ,x.execution_time 
    ,c.path 
    ,su.description 
    ,CONVERT(varchar(max), su.ExtensionSettings) as ExtensionSettings 
    ,'EXEC msdb..sp_start_job ''' + x.job_name + '''' as SQLStatement 
FROM cte x 
    INNER JOIN dbo.Schedule sc ON x.job_name = CONVERT(varchar(100), sc.ScheduleID) 
    INNER JOIN dbo.ReportSchedule rs ON sc.ScheduleID = rs.ScheduleID 
    INNER JOIN dbo.Subscriptions su ON rs.SubscriptionID = su.SubscriptionID 
    INNER JOIN dbo.Catalog c ON su.Report_OID = c.ItemID 
WHERE execution_order = 1 
ORDER BY 3, 2 
+0

fabelhaft ... vielen Dank, einen wirklich schwer zu Figur gelöst - Problem für uns. zeichnete –

Verwandte Themen