sp_help_job (Transact-SQL)
適用対象:SQL Server
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
ジョブ ID 番号。 job_id は uniqueidentifier で、既定値は NULL です。
[ @job_name = ] 'job_name'
ジョブの名前。 job_name は sysname で、既定値は NULL です。
注意
特定のジョブを表示するには、 job_id または job_name を指定する必要があります。 すべてのジョブ に関する情報を 返すには、 job_idとjob_name の両方を省略します。
[ @job_aspect = ] 'job_aspect'
表示するジョブ属性。 job_aspect は varchar(9)で、既定値は NULL で、これらの値のいずれかを指定できます。
値 | 説明 |
---|---|
ALL | ジョブのすべての属性情報 |
ジョブ | ジョブ情報 |
スケジュール | スケジュール情報 |
手順 | ジョブ ステップ情報 |
ターゲット | ターゲット情報 |
[ @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'
サブシステムの名前。 サブシステム は 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 | ジョブの名前。 |
有効 | tinyint | ジョブの実行が有効かどうかを示します。 |
description | nvarchar(512) | ジョブの説明。 |
start_step_id | int | 実行を開始するジョブのステップの ID。 |
category | sysname | ジョブ カテゴリ。 |
所有者 | sysname | ジョブ所有者。 |
notify_level_eventlog | int | 通知イベントを Microsoft Windows アプリケーション ログに記録する必要がある状況を示すビットマスク。 次のいずれかの値を指定します。 0 = Never 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 | 現在の実行状態: 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 | ステップの名前。 |
サブシステム | 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 | スケジュールの名前 (このジョブに対してのみ一意)。 |
有効 | 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 固定サーバー ロールのメンバーです。 他のユーザーには、 SQL Server msdb データベースの次のいずれかの エージェント固定データベース ロールが許可されている必要があります。
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
参照
sp_add_job (Transact-SQL)
sp_delete_job (Transact-SQL)
sp_update_job (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)