2016-11-01 51 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字段。我认为时间是一天中的一种计算时间,并且基于一天的最后一次运行时间。你能切换到测试服务器并修改该值并查看会发生什么吗? –