sp_help_jobhistory (Transact-SQL)
適用於:SQL Server
提供多伺服器管理網域中伺服器作業的相關信息。
語法
sp_help_jobhistory [ [ @job_id = ] job_id ]
[ , [ @job_name = ] 'job_name' ]
[ , [ @step_id = ] step_id ]
[ , [ @sql_message_id = ] sql_message_id ]
[ , [ @sql_severity = ] sql_severity ]
[ , [ @start_run_date = ] start_run_date ]
[ , [ @end_run_date = ] end_run_date ]
[ , [ @start_run_time = ] start_run_time ]
[ , [ @end_run_time = ] end_run_time ]
[ , [ @minimum_run_duration = ] minimum_run_duration ]
[ , [ @run_status = ] run_status ]
[ , [ @minimum_retries = ] minimum_retries ]
[ , [ @oldest_first = ] oldest_first ]
[ , [ @server = ] 'server' ]
[ , [ @mode = ] 'mode' ]
引數
[ @job_id = ] job_id
作業標識碼。 job_id為 uniqueidentifier,預設值為 NULL。
[ @job_name = ] 'job_name'
作業的名稱。 job_name為 sysname,預設值為 NULL。
[ @step_id = ] step_id
步驟標識碼。 step_id為 int,預設值為 NULL。
[ @sql_message_id = ] sql_message_id
執行作業時,Microsoft SQL Server 傳回的錯誤訊息識別碼。 sql_message_id為 int,預設值為 NULL。
[ @sql_severity = ] sql_severity
執行作業時,SQL Server 所傳回之錯誤訊息的嚴重性層級。 sql_severity為 int,預設值為 NULL。
[ @start_run_date = ] start_run_date
作業開始的日期。 start_run_date為 int,預設值為 NULL。 start_run_date必須以格式yyyyMMdd
輸入,其中YYYY是四個字元的年份,MM是兩個字元的月份名稱,而 DD 是兩個字元的日期名稱。
[ @end_run_date = ] end_run_date
作業完成的日期。 end_run_date為 int,預設值為 NULL。 end_run_date必須以格式yyyyMMdd
輸入,其中YYYY是四位數年份,MM是兩個字元的月份名稱,而 DD 是兩個字元的日期名稱。
[ @start_run_time = ] start_run_time
作業啟動的時間。 start_run_time為 int,預設值為 NULL。 start_run_time必須以格式HHmmss
輸入,其中 HH 是一天的兩個字元小時,MM 是一天的兩個字元分鐘,而 SS 是當天的兩個字元秒。
[ @end_run_time = ] end_run_time
作業完成執行的時間。 end_run_time為 int,預設值為 NULL。 end_run_time必須以格式HHmmss
輸入 ,其中 HH 是一天的兩個字元小時,MM 是一天的兩個字元分鐘,而 SS 是當天的兩個字元秒。
[ @minimum_run_duration = ] minimum_run_duration
作業完成的時間長度下限。 minimum_run_duration為 int,預設值為 NULL。 minimum_run_duration必須以格式HHmmss
輸入,其中 HH 是一天中的兩個字元小時,MM 是當天的兩個字元分鐘,而 SS 是當天的兩個字元秒。
[ @run_status = ] run_status
作業的執行狀態。 run_status為 int,預設值為 NULL,而且可以是下列其中一個值。
值 | 描述 |
---|---|
0 | 失敗 |
1 | 成功 |
2 | 重試 (僅限步驟) |
3 | 已取消 |
4 | 進行中訊息 |
5 | 未知 |
[ @minimum_retries = ] minimum_retries
作業應該重試執行的次數下限。 minimum_retries為 int,預設值為 NULL。
[ @oldest_first = ] oldest_first
是否要先以最舊的作業呈現輸出。 oldest_first為 int,預設值為 0,這會先呈現最新的作業。 1 先提供最舊的工作。
[ @server = ] 'server'
執行作業的伺服器名稱。 伺服器 是 nvarchar(30),預設值為 NULL。
[ @mode = ] 'mode'
這是 SQL Server 會列印結果集中的所有資料行 (FULL) 或數據行摘要。 模式 為 varchar(7),預設值為 SUMMARY。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
實際數據行清單取決於模式的值。 最完整的數據行集如下所示,並在模式為 FULL 時傳回。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
instance_id | int | 記錄項目標識碼。 |
job_id | uniqueidentifier | 作業標識碼。 |
job_name | sysname | 作業名稱。 |
step_id | int | 步驟標識碼 (作業歷程記錄為 0 )。 |
step_name | sysname | 步驟名稱 (將會是作業歷程記錄的 NULL)。 |
sql_message_id | int | 針對 Transact-SQL 步驟,執行命令時遇到的最新 Transact-SQL 錯誤號碼。 |
sql_severity | int | 針對 Transact-SQL 步驟,執行命令時遇到的最高 Transact-SQL 錯誤嚴重性。 |
message | nvarchar(1024) | 作業或步驟記錄訊息。 |
run_status | int | 作業或步驟的結果。 |
run_date | int | 作業或步驟開始執行的日期。 |
run_time | int | 作業或步驟開始執行的時間。 |
run_duration | int | 以格式執行作業或步驟 HHmmss 所耗用的時間。 |
operator_emailed | nvarchar(20) | 已針對此作業傳送電子郵件的操作員(針對步驟歷程記錄為 NULL)。 |
operator_netsent | nvarchar(20) | 已針對此作業傳送網路訊息的操作員(針對步驟歷程記錄為 NULL)。 |
operator_paged | nvarchar(20) | 已針對此作業進行分頁的操作員(針對步驟歷程記錄為 NULL)。 |
retries_attempted | int | 重試步驟的次數(作業歷程記錄一律為0次)。 |
伺服器 | nvarchar(30) | 執行步驟或作業的伺服器。 一律是 (本機)。 |
備註
sp_help_jobhistory傳回具有指定排程工作歷程記錄的報表。 如果未指定任何參數,報表會包含所有排程作業的歷程記錄。
權限
依預設,只有 系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。 其他使用者必須獲授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色。
SQLAgentUserRole 資料庫角色的成員只能檢視自己擁有之作業的歷程記錄。
範例
A. 列出作業的所有作業資訊
下列範例會列出作業的所有作業資訊 NightlyBackups
。
USE msdb ;
GO
EXEC dbo.sp_help_jobhistory
@job_name = N'NightlyBackups' ;
GO
B. 列出符合特定條件之作業的資訊
下列範例會列印所有失敗作業的數據行和所有作業資訊,以及錯誤訊息為 (使用者定義的錯誤訊息 50100
)和嚴重性 20
為的失敗作業步驟。
USE msdb
GO
EXEC dbo.sp_help_jobhistory
@sql_message_id = 50100,
@sql_severity = 20,
@run_status = 0,
@mode = N'FULL' ;
GO
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應