sysadmin 固定服務器角色或 SQLAgentUserRole 數據庫角色。Daily_ETL_Refresh),擁有者默認當前登錄賬號,類別可選「數據庫維護」等。Step_Execute_SP。EXEC dbo.usp_Refresh_DataWarehouse;
或點擊「打開」載入 .sql 文件。Schedule_Daily_02AM。1 天 → 每天執行一次 → 時間 02:00:00。Win+R → services.msc → 找到 SQL Server Agent (MSSQLSERVER) → 右鍵屬性 → 啟動類型:自動 → 適用。
否則服務器重啟後 Agent 不會自動運行,作業不會觸發。
| 現象 | 原因 | 對策 |
|---|---|---|
| 作業不執行 | Agent 服務未運行 | 啟動服務、設置自動 |
| 步驟失敗無記錄 | 未配置輸出文件/表 | 步驟→高級→輸出文件寫入路徑 |
| 權限錯誤 | 作業擁有者無目標庫權限 | 指定擁有者為高權限賬號/授予代理賬號權限 |
| 排程不觸發 | 排程未勾選「啟用」 | 排程屬性→啟用核取方塊 |
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Daily_ETL_Refresh',
@enabled = 1,
@description = N'每日數據倉庫刷新';
GO
EXEC dbo.sp_add_jobstep
@job_name = N'Daily_ETL_Refresh',
@step_name = N'Execute_SP',
@subsystem = N'TSQL',
@command = N'EXEC dbo.usp_Refresh_DataWarehouse;',
@database_name = N'DW',
@on_success_action = 1, -- 成功退出
@on_fail_action = 2; -- 失敗退出並報警
GO
EXEC dbo.sp_add_jobschedule
@job_name = N'Daily_ETL_Refresh',
@name = N'Daily_02AM',
@freq_type = 4, -- 每天
@freq_interval = 1,
@active_start_time = 20000; -- 02:00:00
GO
EXEC dbo.sp_add_jobserver @job_name = N'Daily_ETL_Refresh';