【发布时间】:2015-05-26 13:08:43
【问题描述】:
我有一个 SQL 代理作业,如果给定日期的另一个表中有 HOLIDAYCD,则该作业应该阻止作业运行。它正在运行并且正在执行第一个 exec,但其余的都没有运行。代码如下:
IF EXISTS (SELECT HOLIDAYCD FROM CORE.dbo.BANKORGYEARMONTHDAY WHERE CAST(EFFDATE AS DATE) = CAST(GETDATE() AS DATE))
BEGIN
--On a holiday disable the following jobs
exec msdb..sp_update_job @job_name = 'CORE imports', @enabled = 0
exec msdb..sp_update_job @job_name = '086BAE49-50CE-4B87-A8C2-A9386ABEE9D9', @enabled = 0
exec msdb..sp_update_job @job_name = '82499D43-2884-4E16-A514-7B666F5AF095', @enabled = 0
exec msdb..sp_update_job @job_name = '2581BD28-FA33-48C6-B9E1-7B91C432A2B0', @enabled = 0
END
ELSE
--On a normal business day, ensure they are enabled
exec msdb..sp_update_job @job_name = 'CORE imports', @enabled = 1
exec msdb..sp_update_job @job_name = '086BAE49-50CE-4B87-A8C2-A9386ABEE9D9', @enabled = 1
exec msdb..sp_update_job @job_name = '82499D43-2884-4E16-A514-7B666F5AF095', @enabled = 1
exec msdb..sp_update_job @job_name = '2581BD28-FA33-48C6-B9E1-7B91C432A2B0', @enabled = 1
所以发生的事情是“核心导入”作业正在禁用,但 SSRS 作业都没有。有没有更好的方法来阻止报告在假期运行?我只有 SQL Server Standard 2014,所以不能选择数据驱动的报告。
【问题讨论】:
-
您可能需要将第二组语句包装在
ELSE之后的BEGIN...END块中。 -
@IanPreston 就是这样。谢谢你。如果您将其发布为答案,我会确保标记它。
-
谢谢,添加为答案!
标签: sql-server reporting-services sql-agent-job