sp_help_job (Transact-SQL)

適用対象:SQL Server

SQL Serverで自動アクティビティを実行するためにSQL Server エージェントによって使用されるジョブに関する情報を返します。

Transact-SQL 構文表記規則

構文

  
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_iduniqueidentifier で、既定値は NULL です。

[ @job_name = ] 'job_name' ジョブの名前。 job_namesysname で、既定値は NULL です。

注意

特定のジョブを表示するには、 job_id または job_name を指定する必要があります。 すべてのジョブ に関する情報を 返すには、 job_idとjob_name の両方を省略します。

[ @job_aspect = ] 'job_aspect' 表示するジョブ属性。 job_aspectvarchar(9)で、既定値は NULL で、これらの値のいずれかを指定できます。

説明
ALL ジョブのすべての属性情報
ジョブ ジョブ情報
スケジュール スケジュール情報
手順 ジョブ ステップ情報
ターゲット ターゲット情報

[ @job_type = ] 'job_type' レポートに含めるジョブの種類。 job_typevarchar(12)で、既定値は NULL です。 job_type、LOCAL または MULTI-SERVER にすることができます

[ @owner_login_name = ] 'login_name' ジョブの所有者のログイン名。 login_namesysname で、既定値は NULL です。

[ @subsystem = ] 'subsystem' サブシステムの名前。 サブシステムnvarchar(40)で、既定値は NULL です。

[ @category_name = ] 'category' カテゴリの名前。 categorysysname で、既定値は NULL です。

[ @enabled = ] enabled 有効なジョブまたは無効なジョブの情報が表示されるかどうかを示す数値。 enabledtinyint で、既定値は NULL です。 1 は有効なジョブを示し、 0 は無効なジョブを示します。

[ @execution_status = ] status ジョブの実行状態。 statusint で、既定値は NULL で、これらの値のいずれかを指定できます。

説明
0 アイドル状態または中断されていないジョブのみを返します。
1 実行。
2 スレッド待機中。
3 再試行の間。
4 [アイドル]。
5 中断。
7 完了操作の実行中。

[ @date_comparator = ] 'date_comparison'date_createddate_modifiedの比較に使用する比較演算子。 date_comparisonchar(1)で、=、、 <または >を指定できます。

[ @date_created = ] date_created ジョブが作成された日付。 date_createddatetime で、既定値は NULL です。

[ @date_last_modified = ] date_modified ジョブが最後に変更された日付。 date_modifieddatetime で、既定値は NULL です。

[ @description = ] 'description_pattern' ジョブの説明。 description_patternnvarchar(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_action4 の場合、これは次に実行する手順を示します。
on_fail_action nvarchar (4000) ステップが失敗した場合に実行する動作。 値は、 on_success_actionの場合と同じです。
on_fail_step_id int on_fail_action4 の場合、これは次に実行する手順を示します。
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 のメンバーは、自分が所有するジョブのみを表示できます。 sysadminSQLAgentReaderRole、および 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)