在 SQL Server 企業管理器中,透過 管理 → SQL Server Agent → 作業 可建立定時執行預存程序或 T-SQL 陳述式的作業。
建立作業分類:SQL Server Agent → 作業 → 右鍵 → 所有工作 → 新增/修改/刪除
exec p_procedure_name v_param1, v_param2...可新增多個步驟,並支援插入、編輯、刪除、調整順序。
若暫時不需定時執行,可取消勾選「啟用」僅保存作業。
預設使用「作業失敗時寫入 Windows 應用程式系統記錄」,一般無需修改。
發現不同作業歷程記錄筆數不一?可透過以下設定依需求保留:
管理 → SQL Server Agent → 右鍵 → 內容 → 作業系統
| 參數 | 預設值 | 說明 | 調整建議 |
|---|---|---|---|
| 作業歷程記錄記錄檔最大大小 (行數) | 1000 | 整個記錄檔總行數上限 | 作業多時調大,如 100000 |
| 每個作業歷程記錄最大行數 | 100 | 單一作業保留行數上限 | 每天執行 2 次,保留 1 月設為 60 |
兩者有相互制約關係,依實際需求調整。
伺服器改名後,原建立的作業出現錯誤:
錯誤 14274:無法新增、更新或刪除從 MSX 伺服器發起的作業 (或其步驟或排程)
msdb..sysjobs 表的 originating_server 欄位仍存舊伺服器名稱。
USE msdb
GO
-- 1. 查詢舊伺服器名稱的作業
SELECT * FROM sysjobs WHERE originating_server = '舊伺服器名稱'
-- 2. 更新 originating_server 為新伺服器名稱
UPDATE sysjobs
SET originating_server = '新伺服器名稱'
WHERE originating_server = '舊伺服器名稱'
GO
微軟官方文件建議改回舊名再改回新名,但 24x7 系統不可行。直接更新系統表經實測有效且風險較低(建議先備份 msdb)。