萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> 資料庫綜合

SQL Server 2012 建立排程作業 (SQL Agent Job) 圖文教學

前置條件

  • SQL Server Agent 服務已啟動 (服務名稱:SQLSERVERAGENT)
  • 具備 sysadmin 固定伺服器角色權限

建立步驟 (SSMS 圖形化操作)

1. 開啟 SQL Server Agent → 作業 → 右鍵「新增作業」

展開 Agent

新增作業

2. 一般頁面:填寫名稱、描述、類別

一般設定

⚠ 必須勾選「已啟用」,否則排程不會執行。

3. 步驟頁面:新增步驟 → 填寫步驟名稱、資料庫、命令

步驟頁面

步驟詳情

  • 類型:Transact-SQL 指令碼 (T-SQL)
  • 資料庫:選擇目標資料庫
  • 命令:直接撰寫 EXEC dbo.YourStoredProcedure 或 T-SQL 陳述式
  • 點擊 剖析 驗證語法無誤

剖析成功

4. 排程頁面:新增排程 → 設定頻率、間隔、時間

排程頁面

排程詳情

  • 頻率:每日、每週、每月、啟動 SQL Server Agent 時、電腦閒置時
  • 每日頻率:每隔 N 小時/分鐘執行一次,或特定時間點
  • 持續期間:設定生效起迄日期

5. 完成並驗證

作業清單

  • 右鍵作業 → 啟動作業於步驟 手動測試
  • 查看 工作記錄 確認執行成功/失敗訊息

啟動步驟

記錄

T-SQL 腳本建立作業 (適用自動化部署)

USE msdb;
GO
EXEC dbo.sp_add_job
    @job_name = N'DailyDataCleanup',
    @enabled = 1,
    @description = N'每日清理過期暫存資料';
GO
EXEC dbo.sp_add_jobstep
    @job_name = N'DailyDataCleanup',
    @step_name = N'ExecuteCleanupProc',
    @subsystem = N'TSQL',
    @command = N'EXEC dbo.usp_CleanupTempData;',
    @database_name = N'YourDB';
GO
EXEC dbo.sp_add_schedule
    @schedule_name = N'Daily_0200',
    @freq_type = 4,          -- 每日
    @active_start_time = 20000; -- 02:00
GO
EXEC dbo.sp_attach_schedule
    @job_name = N'DailyDataCleanup',
    @schedule_name = N'Daily_0200';
GO

常見坑點提醒

  • Agent 服務未啟動 → 作業永不執行
  • 作業擁有者無權限存取目標資料庫
  • 排程時間與伺服器時區不符
  • 步驟命令未指定資料庫,導致在 master 執行
copyright © 萬盛學電腦網 all rights reserved