重要
在 Azure SQL 受控實例上,目前支援大部分但並非所有 SQL Server Agent 功能。 如需詳細資訊,請參閱 與 SQL Server 的 Azure SQL 受控實例 T-SQL 差異。
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中建立主要Microsoft SQL Server Agent 作業。
開始之前
限制與約束
主要 SQL Server Agent 作業的變更必須傳播至所有相關的目標伺服器。 因為目標伺服器在指定之前不會先行下載作業,所以Microsoft建議您在指定任何目標伺服器之前,先完成該特定作業的所有作業步驟和作業排程。 否則,您必須手動要求目標伺服器再次下載修改過的作業,方法是執行 sp_post_msx_operation 預存程式,或使用 SQL Server Management Studio 修改作業。 如需詳細資訊,請參閱 sp_post_msx_operation (Transact-SQL) 或 修改作業。
安全
權限
分散式作業中,與 Proxy 相關的步驟會在目標伺服器上的 Proxy 帳戶環境中執行。 請確定符合下列條件,或與 Proxy 相關聯的作業步驟將不會從主伺服器下載到目標:
登錄子機碼 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<*instance_name*>\SQL Server Agent\AllowDownloadedJobsToMatchProxyName(REG_DWORD)設定為 1(true)。 根據預設,這個子機碼會設定為 0 (false)。
目標伺服器上存在 Proxy 帳戶,其名稱與執行作業步驟的主伺服器 Proxy 帳戶相同。
如果在將 Proxy 帳戶從主伺服器下載到目標伺服器時,使用 Proxy 帳戶的作業步驟失敗,您可以在 msdb 資料庫中,檢查 sysdownloadlist 數據表中的 [error_message] 數據行,以取得下列錯誤訊息:
「作業步驟需要 Proxy 帳戶,不過目標伺服器上已停用 Proxy 比對。」若要解決此錯誤,請將 AllowDownloadedJobsToMatchProxyName 登錄子機碼設定為 1。
「找不到 Proxy」。若要解決此錯誤,請確定目標伺服器上有與作業步驟執行所在主要伺服器 Proxy 帳戶同名的 Proxy 帳戶。
使用 SQL Server Management Studio
若要建立主要 SQL Server Agent 作業
在 [物件總管]中,單擊加號以展開您要在其中建立 SQL Server Agent 作業的伺服器。
點擊加號以展開 SQL Server Agent。
以滑鼠右鍵點擊 [工作] 資料夾,然後選取 [新增作業...]。
在 [新工作] 對話方塊的 [一般] 頁面上,修改工作的常規屬性。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (一般頁面)
在 [步驟] 頁面上,組織作業步驟。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (步驟頁面)
在 [排程] 頁面上,安排工作的排程。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (排程頁面)
在 [警示列表] 頁面上,整理作業的警示。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (警示頁面)
在 [通知] 頁面上,設定Microsoft SQL Server Agent 的動作,以在作業完成時執行。 如您要此頁面可用選項的詳細資訊,請參閱 工作屬性 - 新增作業 (通知頁面)。
在 [目標] 頁面上,管理作業的目標伺服器。 如您要此頁面可用選項的詳細資訊,請參閱 工作屬性 - 新增作業 (目標頁面)。
完成後,按兩下 [確定] [確定]。
使用 Transact-SQL
若要建立主要 SQL Server Agent 作業
在 對象總管中,連接到Database Engine的實例。
在 [標準] 列上,按一下 [新增查詢]。
將下列範例複製並貼到查詢視窗中,然後按下 [執行] 。
USE msdb ; GO -- Adds a new job executed by the SQLServerAgent service called 'Weekly Sales Data Backup' EXEC dbo.sp_add_job @job_name = N'Weekly Sales Data Backup' ; GO -- Adds a step (operation) to the 'Weekly Sales Data Backup' job. EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'TSQL', @command = N'ALTER DATABASE SALES SET READ_ONLY', @retry_attempts = 5, @retry_interval = 5 ; GO -- Creates a schedule called RunOnce EXEC dbo.sp_add_schedule @schedule_name = N'RunOnce', @freq_type = 1, @active_start_time = 233000 ; USE msdb ; GO -- Sets the 'RunOnce' schedule to the "Weekly Sales Data Backup' Job EXEC sp_attach_schedule @job_name = N'Weekly Sales Data Backup', @schedule_name = N'RunOnce'; GO -- assigns the multiserver job Weekly Sales Backups to the server SEATTLE2 -- assumes that SEATTLE2 is registered as a target server for the current instance. EXEC dbo.sp_add_jobserver @job_name = N'Weekly Sales Data Backups', @server_name = N'SEATTLE2' ; GO
如需詳細資訊,請參閱: