共用方式為


建立 SQL Server Agent 主要作業

適用於:SQL ServerAzure SQL 受控實例

重要

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 作業

  1. 在 [物件總管]中,單擊加號以展開您要在其中建立 SQL Server Agent 作業的伺服器。

  2. 點擊加號以展開 SQL Server Agent

  3. 以滑鼠右鍵點擊 [工作] 資料夾,然後選取 [新增作業...]。

  4. 在 [新工作] 對話方塊的 [一般] 頁面上,修改工作的常規屬性。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (一般頁面)

  5. 在 [步驟] 頁面上,組織作業步驟。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (步驟頁面)

  6. 在 [排程] 頁面上,安排工作的排程。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (排程頁面)

  7. 在 [警示列表] 頁面上,整理作業的警示。 如需此頁面可用選項的詳細資訊,請參閱 作業屬性 - 新增作業 (警示頁面)

  8. 在 [通知] 頁面上,設定Microsoft SQL Server Agent 的動作,以在作業完成時執行。 如您要此頁面可用選項的詳細資訊,請參閱 工作屬性 - 新增作業 (通知頁面)

  9. 在 [目標] 頁面上,管理作業的目標伺服器。 如您要此頁面可用選項的詳細資訊,請參閱 工作屬性 - 新增作業 (目標頁面)

  10. 完成後,按兩下 [確定] [確定]

使用 Transact-SQL

若要建立主要 SQL Server Agent 作業

  1. 對象總管中,連接到Database Engine的實例。

  2. 在 [標準] 列上,按一下 [新增查詢]。

  3. 將下列範例複製並貼到查詢視窗中,然後按下 [執行]

    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  
    

如需詳細資訊,請參閱: