sp_help_jobhistory (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
ジョブの識別番号を指定します。 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 は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日を表します。[ @end_run_date= ] end_run_date
ジョブが完了した日付を指定します。 end_run_date のデータ型は int で、既定値は NULL です。 end_run_dateは、YYYYMMDD の形式で入力する必要があります。YYYY は 4 桁の年、MM は 2 桁の月、DD は 2 桁の日を表します。[ @start_run_time= ] start_run_time
ジョブを開始した時刻を指定します。 start_run_time のデータ型は int で、既定値は NULL です。 start_run_timeは、HHMMSS の形式で入力する必要があります。HH は 2 桁の時、MM は 2 桁の分、SS は 2 桁の秒を表します。[ @end_run_time= ] end_run_time
ジョブが完了した時刻を指定します。 end_run_time のデータ型は int で、既定値は NULL です。 end_run_timeは、HHMMSS の形式で入力する必要があります。HH は 2 桁の時、MM は 2 桁の分、SS は 2 桁の秒を表します。[ @minimum_run_duration= ] minimum_run_duration
ジョブを完了するのに必要な最小時間を指定します。 minimum_run_duration のデータ型は int で、既定値は NULL です。 minimum_run_durationは、HHMMSS の形式で入力する必要があります。HH は 2 桁の時、MM は 2 桁の分、SS は 2 桁の秒を表します。[ @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'
ジョブを実行したサーバーの名前を示します。 server のデータ型は nvarchar(30) で、既定値は NULL です。[ @mode= ] 'mode'
SQL Server で結果セットにあるすべての列 (FULL) を出力するか、列の概要を出力するかを示します。 mode のデータ型は varchar(7) で、既定値は SUMMARY です。
戻り値
0 (成功) または 1 (失敗)
結果セット
実際の列一覧は、mode の値に応じて異なります。 次に、最も広範な列セットを示します。これは、mode が 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 です。 |
server |
nvarchar(30) |
ステップまたはジョブを実行するサーバー。 これは常に local です。 |
説明
sp_help_jobhistory では、指定した定期ジョブの履歴と共にレポートが返されます。 どのパラメーターも指定しない場合は、レポートにはすべての定期ジョブの履歴が含まれます。
権限
既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバーです。 他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。
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