sp_help_job (Transact-SQL)
自動化された操作を SQL Server で実行するときに SQL Server エージェントで使用されるジョブに関する情報を返します。
構文
sp_help_job { [ @job_id = ] job_id
[ @job_name = ] 'job_name' }
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] 'login_name' ]
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @category_name = ] 'category' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] status ]
[ , [ @date_comparator = ] 'date_comparison' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_modified ]
[ , [ @description = ] 'description_pattern' ]
引数
[ @job_id = ] job_id
ジョブの識別番号を指定します。job_id のデータ型は uniqueidentifier で、既定値は NULL です。[ @job_name =] 'job_name'
ジョブの名前を指定します。job_name のデータ型は sysname で、既定値は NULL です。注 job_id または job_name のいずれかを指定する必要があります。両方を指定することはできません。
[ @job_aspect =] 'job_aspect'
表示するジョブ属性を指定します。job_aspect のデータ型は varchar(9) で、既定値は NULL です。次のいずれかの値を指定できます。値
説明
ALL
ジョブのすべての属性情報
JOB
ジョブ情報
SCHEDULES
スケジュール情報
STEPS
ジョブ ステップ情報
TARGETS
表示対象情報
[ @job_type =] 'job_type'
レポートに含めるジョブの種類を指定します。job_type のデータ型は varchar(12) で、既定値は NULL です。job_type には LOCAL または MULTI-SERVER を指定できます。[ @owner_login_name = ] 'login_name'
ジョブの所有者のログイン名を指定します。login_name のデータ型は sysname で、既定値は NULL です。[ @subsystem =] 'subsystem'
サブシステムの名前を指定します。subsystem のデータ型は nvarchar(40) で、既定値は NULL です。[ @category_name = ] 'category'
カテゴリの名前を指定します。category のデータ型は sysname で、既定値は NULL です。[ @enabled = ] enabled
有効なジョブと無効なジョブのどちらの情報を表示するかを示す数値を指定します。enabled のデータ型は tinyint で、既定値は NULL です。1 は有効なジョブ、0 は無効なジョブを示します。[ @execution_status =] status
ジョブの実行状態を指定します。status のデータ型は int で、既定値は NULL です。次のいずれかの値を指定できます。値
説明
0
アクティブなジョブだけを返す。
1
実行中。
2
スレッド待機中。
3
再試行待ち。
4
アイドル。
5
一時中断。
7
完了操作の実行中。
[ @date_comparator =] 'date_comparison'
date_created と date_modified の比較演算に使用する比較演算子を指定します。date_comparison のデータ型は char(1) で、=、<、または > を指定できます。[ @date_created =] date_created
ジョブが作成された日付を指定します。date_created のデータ型は datetime で、既定値は NULL です。[ @date_last_modified =] date_modified
ジョブが最後に変更された日付を指定します。date_modified のデータ型は datetime で、既定値は NULL です。[ @description =] 'description_pattern'
ジョブの説明を指定します。description_pattern のデータ型は nvarchar(512) で、既定値は NULL です。description_pattern には、パターン検索用に、SQL Server のワイルドカード文字を含めることができます。
リターン コードの値
0 (成功) または 1 (失敗)
結果セット
引数を指定しない場合、sp_help_job では次の結果セットが返されます。
列名 |
データ型 |
説明 |
---|---|---|
job_id |
uniqueidentifier |
ジョブの一意な ID。 |
originating_server |
nvarchar(30) |
ジョブを実行したサーバーの名前。 |
name |
sysname |
ジョブの名前。 |
enabled |
tinyint |
ジョブが実行可能かどうか。 |
description |
nvarchar(512) |
ジョブの説明。 |
start_step_id |
int |
実行を開始するジョブ ステップの ID。 |
category |
sysname |
ジョブ カテゴリ。 |
owner |
sysname |
ジョブ所有者。 |
notify_level_eventlog |
int |
どのような場合に通知イベントを Microsoft Windows アプリケーション ログに記録するかを示すビットマスク。次のいずれかの値になります。 0 = 記録しない 1 = ジョブが成功した場合 2 = ジョブが失敗した場合 3 = ジョブの結果に関係なく、ジョブが完了した場合 |
notify_level_email |
int |
どのような場合に、ジョブの完了時に通知電子メールを送信するのかを示すビットマスク。返される値は、notify_level_eventlog の場合と同じです。 |
notify_level_netsend |
int |
どのような場合に、ジョブの完了時にネットワーク メッセージを送信するのかを示すビットマスク。返される値は、notify_level_eventlog の場合と同じです。 |
notify_level_page |
int |
どのような場合に、ジョブの完了時にページを送信するのかを示すビットマスク。返される値は、notify_level_eventlog の場合と同じです。 |
notify_email_operator |
sysname |
通知先のオペレータの電子メール名。 |
notify_netsend_operator |
sysname |
ネットワーク メッセージを送信するときに使用するコンピュータまたはユーザーの名前。 |
notify_page_operator |
sysname |
ページを送信するときに使用するコンピュータまたはユーザーの名前。 |
delete_level |
int |
どのような場合に、ジョブの完了時にジョブを削除するのかを示すビットマップ。返される値は、notify_level_eventlog の場合と同じです。 |
date_created |
datetime |
ジョブを作成した日付。 |
date_modified |
datetime |
ジョブを最後に変更した日付。 |
version_number |
int |
ジョブのバージョン。ジョブを変更するたびに自動的に更新されます。 |
last_run_date |
int |
ジョブの実行を最後に開始した日付。 |
last_run_time |
int |
ジョブの実行を最後に開始した時刻。 |
last_run_outcome |
int |
最後に実行したときのジョブの結果。 0 = 失敗 1 = 成功 3 = キャンセル 5 = 不明 |
next_run_date |
int |
ジョブの次回実行予定日。 |
next_run_time |
int |
ジョブの次回実行予定時刻。 |
next_run_schedule_id |
int |
次回の実行スケジュールの識別番号。 |
current_execution_status |
int |
現在の実行ステータス。 |
current_execution_step |
sysname |
ジョブの現在の実行ステップ。 |
current_retry_attempt |
int |
ジョブの実行中にステップを再試行した場合、現在の再試行を示します。 |
has_step |
int |
ジョブのジョブ ステップ数。 |
has_schedule |
int |
ジョブのジョブ スケジュール数。 |
has_target |
int |
ジョブの対象サーバー数。 |
type |
int |
ジョブの種類。 1 = ローカル ジョブ 2 = マルチサーバー ジョブ 0 = 対象サーバーなし |
job_id または job_name を指定した場合、sp_help_job では通常の結果セットの他に、ジョブ ステップ、ジョブ スケジュール、およびジョブ対象サーバーに関する結果セットも返されます。
次に、ジョブ ステップに関する結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
step_id |
int |
このジョブでのみ一意なステップの識別子。 |
step_name |
sysname |
ステップの名前。 |
subsystem |
nvarchar(40) |
ステップ コマンドを実行するサブシステム。 |
command |
nvarchar(3200) |
実行するコマンド。 |
flags |
nvarchar(4000) |
ステップの動作を制御する値のビットマスク。 |
cmdexec_success_code |
int |
CmdExec ステップの場合、正常に実行できたコマンドのプロセス終了コード。 |
on_success_action |
nvarchar(4000) |
ステップが成功した場合に実行する操作。 1 = 成功した状態で終了する 2 = 失敗した状態で終了する 3 = 次のステップに進む 4 = ステップに進む |
on_success_step_id |
int |
on_success_action が 4 の場合、実行する次のステップ。 |
on_fail_action |
nvarchar(4000) |
ステップが失敗した場合に実行する動作。値は on_success_action の場合と同じです。 |
on_fail_step_id |
int |
on_fail_action が 4 の場合、実行する次のステップ。 |
server |
sysname |
予約済み。 |
database_name |
sysname |
Transact-SQL ステップの場合は、コマンドを実行するデータベース。 |
database_user_name |
sysname |
Transact-SQL ステップの場合は、コマンドを実行するデータベース ユーザー コンテキスト。 |
retry_attempts |
int |
ステップを正常に実行できない場合、コマンドを再試行する最大回数。この回数に達すると、ステップが失敗したと判断されます。 |
retry_interval |
int |
再試行する間隔 (分単位)。 |
os_run_priority |
varchar(4000) |
予約済み。 |
output_file_name |
varchar(200) |
コマンド出力を書き込むファイル (Transact-SQL および CmdExec ステップのみ)。 |
last_run_outcome |
int |
最後に実行したときのステップの結果。 0 = 失敗 1 = 成功 3 = キャンセル 5 = 不明 |
last_run_duration |
int |
最後に実行したときのステップの経過時間 (秒単位)。 |
last_run_retries |
int |
最後にステップを実行したときのコマンドの再試行回数。 |
last_run_date |
int |
ステップの実行を最後に開始した日付。 |
last_run_time |
int |
ステップの実行を最後に開始した時刻。 |
proxy_id |
int |
ジョブ ステップのプロキシ。 |
次に、ジョブ スケジュールに関する結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
schedule_id |
int |
すべてのジョブで一意なスケジュール識別子。 |
schedule_name |
sysname |
このジョブでのみ一意なスケジュールの名前。 |
enabled |
int |
スケジュールがアクティブ (1) か非アクティブ (0) かを示す値。 |
freq_type |
int |
ジョブを実行する頻度を示す値。 1 = 1 回 4 = 毎日 8 = 毎週 16 = 毎月 32 = freq_interval を基準とした月単位 64 = SQLServerAgent サービスの開始時に実行 |
freq_interval |
int |
ジョブを実行する日数。値は freq_type の値により異なります。詳細については、「sp_add_schedule (Transact-SQL)」を参照してください。 |
freq_subday_type |
Int |
freq_subday_interval の単位。詳細については、「sp_add_schedule (Transact-SQL)」を参照してください。 |
freq_subday_interval |
int |
freq_subday_type 期間の数。ジョブの実行間隔を示します。詳細については、「sp_add_schedule (Transact-SQL)」を参照してください。 |
freq_relative_interval |
int |
毎月、freq_interval に基づいて定期ジョブを実行します。詳細については、「sp_add_schedule (Transact-SQL)」を参照してください。 |
freq_recurrence_factor |
int |
定期ジョブの実行間隔 (月単位)。 |
active_start_date |
int |
ジョブの実行を開始する日付。 |
active_end_date |
int |
ジョブの実行を終了する日付。 |
active_start_time |
int |
active_start_date にジョブの実行を開始する時刻。 |
active_end_time |
int |
active_end_date にジョブの実行を終了する時刻。 |
date_created |
datetime |
スケジュールを作成した日付。 |
schedule_description |
nvarchar(4000) |
英語によるスケジュールの説明 (必要な場合)。 |
next_run_date |
int |
スケジュールで次にジョブを実行する日付。 |
next_run_time |
int |
スケジュールで次にジョブを実行する時刻。 |
schedule_uid |
uniqueidentifier |
スケジュールの識別子。 |
job_count |
int |
このスケジュールを参照するジョブの数。 |
次に、ジョブ対象サーバーに関する結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
server_id |
int |
対象サーバーの識別子。 |
server_name |
nvarchar(30) |
対象サーバーのコンピュータ名。 |
enlist_date |
datetime |
対象サーバーがマスタ サーバーに参加した日付。 |
last_poll_date |
datetime |
対象サーバーが最後にマスタ サーバーを呼び出した日付。 |
last_run_date |
int |
対象サーバーでジョブの実行を最後に開始した日付。 |
last_run_time |
int |
対象サーバーでジョブの実行を最後に開始した時刻。 |
last_run_duration |
int |
対象サーバーで最後に実行したときのジョブの経過時間。 |
last_run_outcome |
tinyint |
対象サーバーで最後に実行したときのジョブの結果。 0 = 失敗 1 = 成功 3 = キャンセル 5 = 不明 |
last_outcome_message |
nvarchar(1024) |
対象サーバーで最後に実行したときのジョブからの結果メッセージ。 |
権限
既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。
SQLAgentUserRole のメンバは、自分が所有しているジョブだけを表示できます。sysadmin、SQLAgentReaderRole、および SQLAgentOperatorRole のメンバは、すべてのローカル ジョブおよびマルチサーバー ジョブを表示できます。
例
A. すべてのジョブに関する情報を一覧表示する
次の例では、パラメータを指定せずに sp_help_job プロシージャを実行して、msdb データベースに現在定義されているすべてのジョブに関する情報を返します。
USE msdb ;
GO
EXEC dbo.sp_help_job ;
GO
B. 指定した条件に一致するジョブについての情報を一覧表示する
次の例では、françoisa が所有するマルチサーバー ジョブのジョブ情報を一覧表示します。ここでは、有効でかつ、実行中のジョブが対象になります。
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_type = N'MULTI-SERVER',
@owner_login_name = N'françoisa',
@enabled = 1,
@execution_status = 1 ;
GO
C. ジョブに関するすべての属性情報を一覧表示する
次の例では、NightlyBackups ジョブに関するすべての属性情報を一覧表示します。
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_name = N'NightlyBackups',
@job_aspect = N'ALL' ;
GO