Sql-Server

安排作業在不同的步驟開始

  • September 23, 2020

我正在開發一個系統,該系統會生成許多定期電子郵件,作為 SQL Server 代理中計劃的各種作業的一部分。這些電子郵件包含基於文本的報告,這些報告與他們的工作主題鬆散相關,但不依賴於工作的結果。當客戶要求更改報告或分發列表的內容時,可能很難找到負責生成電子郵件/報告的特定工作/步驟。

為了使這些任務的維護更容易,我想創建一個新的中央作業並將每個電子郵件/報告步驟移動到該作業中。我會將作業的每個步驟配置為“退出作業報告成功”。我會為作業中的每個步驟配置一個唯一的時間表,以便繼續按照正常的時間表生成電子郵件/報告。例如,第 1 步將在每天早上 7 點執行。第 2 步將在周六和周日中午執行。等等。

在此處輸入圖像描述

當我去創建一個時間表時,我無法找到一種方法來指定從哪個步驟開始。我知道msdb.dbo.sp_start_job接受一個@step_name參數。同樣,SQL Server 代理允許我在通過 UI 手動啟動作業時選擇一個開始步驟。有沒有辦法從計劃中指定開始步驟,或者我是否僅限於從作業中列出的配置(預設)開始步驟開始?

計劃不依賴於作業。實際上,調度是一個可以被多個作業使用的共享資源。

沒有所謂的“本地”時間表。當然,沒有什麼能阻止你使用時間表只做一份工作。

即,在代理體系結構中沒有安排啟動某個工作步驟的時間表。

所以,是的,您僅限於在作業中定義的步驟開始作業。

按照我閱讀您的場景的方式,這些步驟之間沒有任何共同點,只是它們共享您的應用程序的相同子系統(或者您會用它來表達它)。我希望代理能夠為作業提供一些命名空間/文件夾功能,但沒有。IMO,您最接近的是為您的工作制定一個健康的命名標準,在工作名稱中使用一些前綴來標識每組工作屬於哪個系統。當然,還有工作內部的評論。

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