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