2016-11-01 85 views
0

您好,我有大約900多個訂閱,我想更新爲上午10點而不是上午7點運行。我無法在報告服務器或我的許多Google搜索中找到需要更新的字段。SSRS更新後臺運行時間

要獲得一般數據,我使用下面的查詢。似乎必須有一個字段保存運行時間,可能在XML中?

USE reportserver 
GO 

select c.Name, 
s.StartDate, 
s.NextRunTime, 
s.LastRunTime, 
s.EndDate, 
s.RecurrenceType, 
s.LastRunStatus, 
s.MinutesInterval, 
s.DaysInterval, 
s.WeeksInterval, 
s.DaysOfWeek, 
s.DaysOfMonth, 
s.[Month], 
s.MonthlyWeek 
from dbo.catalog c with (nolock) 
inner join dbo.ReportSchedule rs 
on rs.ReportID = c.ItemID 
inner join dbo.Schedule s with (nolock) 
on rs.ScheduleID = s.ScheduleID 
where ISNULL(s.ENDDATE,'2050-01-01') >= '2016-01-01' 
order by c.name 

回答

0

這些訂閱以循環方式運行。確定下一次運行時間的邏輯可能使用類似於this stackoverflow answer的查詢。

如果有NextCalculatedRunDate字段,那將會很好,但是,每次代理程序運行時都會觸發邏輯來發送訂閱,從而導致下一個運行字段無用。

根據重複出現的類型和值,您可以預測下一次運行時間。我敢打賭,訂閱服務代理運行在每隔5-30秒的範圍內。

+0

感謝您的回答,但我的想法是。我設置了訂閱,在每個月的第一天上午10點運行。我可以找到每個月的第一個上市地點,但不是上午10點。如果每次重新計算它仍然必須存儲在某個地方的上午10點? –

+0

那麼也許這是LastRunTime字段。我認爲時間是一天中的一種計算時間,並且基於一天的最後一次運行時間。你能切換到測試服務器並修改該值並查看會發生什麼嗎? –