Sql-Server-Agent

更新代理作業的下一次執行值

  • March 2, 2017

每隔一段時間,我公司的 BI 團隊就會要求跳過今天執行的工作。我過去一直在做的是進入工作計劃並手動將計劃的開始日期更改為明天。然後,我在作業計劃上點擊“確定”以保存計劃編輯,然後在作業屬性視窗中點擊“確定”。

然後,我看到 Next Run 值從今天中午變為明天中午,這是所需的行為。我不想手動執行,而是使用腳本執行相同的任務。我嘗試更新時間表的 active_start_date 列

$$ msdb $$.$$ dbo $$.$$ sysschedules $$但該作業最終在中午執行,必須手動停止。 有人知道如何通過使用腳本有效地跳過作業的下一次執行嗎?

環境:SQL Server 2012 SP1

我有一些程式碼可以做到這一點;這是相關的行:

EXECUTE msdb.dbo.sp_update_schedule @schedule_id         = @target_schedule_id
                                  ,@enabled             = 1
                                  ,@active_start_date   = @new_rundate
                                  ,@active_start_time   = @new_active_start_time

注意:在可能的情況下,我會提前幾天更新工作計劃,以允許在假期前的最後一個工作日執行不同的工作。我似乎記得作業調度程序可能會記憶體一些數據,因此在作業應該執行前十分鐘執行此操作可能不會產生預期的效果。

也就是說:在我執行我的腳本後,我總是在作業活動監視器中仔細檢查計劃是否正確,他們總是這樣做。

引用自:https://dba.stackexchange.com/questions/166013