sp_help_job (Transact-SQL)
適用対象: SQL Server
SQL Server で自動アクティビティを実行するためにSQL Server エージェントによって使用されるジョブに関する情報を返します。
構文
sp_help_job
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] N'owner_login_name' ]
[ , [ @subsystem = ] N'subsystem' ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] execution_status ]
[ , [ @date_comparator = ] 'date_comparator' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_last_modified ]
[ , [ @description = ] N'description' ]
[ ; ]
引数
[ @job_id = ] 'job_id'
ジョブ ID 番号。 @job_id は uniqueidentifier で、既定値は NULL
です。
特定のジョブを表示するには、 @job_id または @job_name を指定する必要があります。 すべてのジョブに関する情報を返すには、 @job_id と @job_name の両方を省略します。
[ @job_name = ] N'job_name'
ジョブの名前。 @job_name は sysname で、既定値は NULL
です。
特定のジョブを表示するには、 @job_id または @job_name を指定する必要があります。 すべてのジョブに関する情報を返すには、 @job_id と @job_name の両方を省略します。
[ @job_aspect = ] 'job_aspect'
表示するジョブ属性を指定します。 @job_aspect は varchar(9)であり、これらの値のいずれかを指定できます。
値 | 説明 |
---|---|
ALL |
ジョブのすべての属性情報 |
JOB |
職務情報 |
SCHEDULES |
スケジュール情報 |
STEPS |
ジョブ ステップ情報 |
TARGETS |
ターゲット情報 |
[ @job_type = ] 'job_type'
report. に含めるジョブの種類@job_type は varchar(12) で、既定値は NULL
です。 @job_type は、 LOCAL
または MULTI-SERVER
できます。
[ @owner_login_name = ] N'owner_login_name'
ジョブの所有者のログイン名を指定します。 @owner_login_name は sysname で、既定値は NULL
です。
[ @subsystem = ] N'subsystem'
サブシステムの名前。 @subsystem は nvarchar(40) で、既定値は NULL
です。
[ @category_name = ] N'category_name'
カテゴリの名前。 @category_name は sysname で、既定値は NULL
です。
[ @enabled = ] enabled
有効なジョブまたは無効なジョブの情報が表示されるかどうかを示す数値。 @enabled は tinyint で、既定値は NULL
です。
1
は、有効なジョブを示します。0
は無効なジョブを示します。
[ @execution_status = ] execution_status
ジョブの実行状態を指定します。 @execution_status は int であり、これらの値のいずれかを指定できます。
値 | 説明 |
---|---|
0 |
アイドル状態または中断されていないジョブのみを返します。 |
1 |
実行。 |
2 |
スレッド待機中。 |
3 |
再試行の間。 |
4 |
Idle。 |
5 |
中断。 |
7 |
完了操作の実行中。 |
[ @date_comparator = ] 'date_comparator'
@date_createdと@date_last_modifiedの比較に使用する比較演算子。 @date_comparator は char(1)であり、 =
、 <
、または >
できます。
[ @date_created = ] date_created
ジョブが作成された日付を指定します。 @date_created は datetime で、既定値は NULL
です。
[ @date_last_modified = ] date_last_modified
ジョブが最後に変更された日付を指定します。 @date_last_modified は datetime で、既定値は NULL
です。
[ @description = ] N'description'
ジョブの説明。 @description は nvarchar(512) で、既定値は NULL
です。 @description パターン マッチング用の ワイルドカード文字 を含めることができます。
リターン コードの値
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 = Never1 = ジョブが成功した場合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 | 現在の実行状態:1 = 実行中2 = スレッドの待機中3 = 再試行の間4 = アイドル5 = 中断6 = 廃止7 = PerformingCompletionActions |
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 | ステップの (このジョブで) 一意の ID。 |
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 = SQL Server エージェント サービスの起動時に実行します。 |
freq_interval |
int | ジョブが実行される日数。 値は、 freq_type の値によって異なります。 詳細については、 sp_add_scheduleを参照してください。 |
freq_subday_type |
int | freq_subday_interval の単位。 詳細については、 sp_add_scheduleを参照してください。 |
freq_subday_interval |
int | ジョブの各実行間に発生する freq_subday_type 期間の数。 詳細については、 sp_add_scheduleを参照してください。 |
freq_relative_interval |
int | スケジュールされたジョブの毎月の freq_interval の発生。 詳細については、 sp_add_scheduleを参照してください。 |
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) | このターゲット サーバーで前回実行されたジョブからの結果メッセージ。 |
アクセス許可
この手順では EXECUTE
アクセス許可を付与できますが、これらのアクセス許可は SQL Server のアップグレード中にオーバーライドされる可能性があります。
他のユーザーには、msdb
データベース内の次SQL Server エージェント固定データベース ロールのいずれかを付与する必要があります。
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
SQLAgentUserRoleのメンバーは、所有するジョブのみを表示できます。 sysadmin、SQLAgentReaderRole、および SQLAgentOperatorRole のメンバーは、すべてのローカル ジョブとマルチサーバー ジョブを表示できます。
例
A. すべてのジョブの情報を一覧表示する
次の例では、msdb
データベースで現在定義されているすべてのジョブの情報を返すパラメーターを指定せず、sp_help_job
プロシージャを実行します。
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