sp_help_jobhistory (Transact-SQL)

適用対象:SQL Server

マルチサーバー管理ドメインに所属するサーバーのジョブに関する情報を提供します。

Transact-SQL 構文表記規則

構文

  
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 ジョブ 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、YYYY は 4 文字の年、MM は 2 文字の月名、DD は 2 文字の日の名前の形式yyyyMMddで入力する必要があります。

[ @end_run_date = ] end_run_date ジョブが完了した日付。 end_run_dateは int で、既定値は NULL です。 end_run_date、YYYY は 4 桁の年、MM は 2 文字の月名、DD は 2 文字の日の名前という形式yyyyMMddで入力する必要があります。

[ @start_run_time = ] start_run_time ジョブが開始された時刻。 start_run_timeは int で、既定値は NULL です。 start_run_time、HH は 1 日の 2 文字の時間、MM は 1 日の 2 文字分、SS は 1 日の 2 文字の秒という形式HHmmssで入力する必要があります。

[ @end_run_time = ] end_run_time ジョブの実行が完了した時刻。 end_run_timeは int で、既定値は NULL です。 end_run_timeは、HH は 1 日の 2 文字の時間、MM は 1 日の 2 文字分、SS は 1 日の 2 文字の秒という形式HHmmssで入力する必要があります。

[ @minimum_run_duration = ] minimum_run_duration ジョブの完了時間の最小長。 minimum_run_durationは int で、既定値は NULL です。 minimum_run_duration、HH は 1 日の 2 文字の時間、MM は 1 日の 2 文字分、SS は 1 日の 2 文字の秒という形式HHmmssで入力する必要があります。

[ @run_status = ] run_status ジョブの実行状態。 run_statusは int で、既定値は NULL で、これらの値のいずれかを指定できます。

Value 内容
0 失敗
1 Succeeded
2 再試行 (ステップのみ)
3 取り消し済み
4 進行中のメッセージ
5 Unknown

[ @minimum_retries = ] minimum_retries ジョブの実行を再試行する最小回数。 minimum_retriesは int で、既定値は NULL です。

[ @oldest_first = ] oldest_first 最初に最も古いジョブで出力を表示するかどうかを指定します。 oldest_firstは int で、既定値は 0 で、最新のジョブが最初に表示されます。 1 は最も古いジョブを最初に示します。

[ @server = ] 'server' ジョブが実行されたサーバーの名前。 servernvarchar(30)で、既定値は NULL です。

[ @mode = ] 'mode' SQL Server が結果セット (FULL) 内のすべての列を出力するか、列の概要を出力するかを指定します。 modevarchar(7) で、既定値は SUMMARY です。

リターン コードの値

0 (成功) または 1 (失敗)

結果セット

実際の列リストは、モード値によって異なります。 最も包括的な列のセットを次に示します。モードが FULL の場合に返されます。

列名 データ型 説明
instance_id int 履歴エントリの識別番号。
job_id uniqueidentifier ジョブ ID 番号。
job_name sysname ジョブ名。
step_id int ステップ ID 番号 (ジョブ履歴の場合は 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 固定サーバー ロールのメンバーです。 他のユーザーには、 SQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。

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  

参照

sp_purge_jobhistory (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)