次の方法で共有


sp_help_job (Transact-SQL)

適用対象: SQL Server

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

Transact-SQL 構文表記規則

構文

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

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

[ @job_name = ] N'job_name'

ジョブの名前。 @job_namesysname で、既定値は NULL です。

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

[ @job_aspect = ] 'job_aspect'

表示するジョブ属性を指定します。 @job_aspectvarchar(9)であり、これらの値のいずれかを指定できます。

説明
ALL ジョブのすべての属性情報
JOB 職務情報
SCHEDULES スケジュール情報
STEPS ジョブ ステップ情報
TARGETS ターゲット情報

[ @job_type = ] 'job_type'

report. に含めるジョブの種類@job_typevarchar(12) で、既定値は NULL です。 @job_type は、 LOCAL または MULTI-SERVERできます。

[ @owner_login_name = ] N'owner_login_name'

ジョブの所有者のログイン名を指定します。 @owner_login_namesysname で、既定値は NULL です。

[ @subsystem = ] N'subsystem'

サブシステムの名前。 @subsystemnvarchar(40) で、既定値は NULL です。

[ @category_name = ] N'category_name'

カテゴリの名前。 @category_namesysname で、既定値は NULL です。

[ @enabled = ] enabled

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

  • 1 は、有効なジョブを示します。
  • 0 は無効なジョブを示します。

[ @execution_status = ] execution_status

ジョブの実行状態を指定します。 @execution_statusint であり、これらの値のいずれかを指定できます。

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

[ @date_comparator = ] 'date_comparator'

@date_created@date_last_modifiedの比較に使用する比較演算子。 @date_comparatorchar(1)であり、 =<、または >できます。

[ @date_created = ] date_created

ジョブが作成された日付を指定します。 @date_createddatetime で、既定値は NULL です。

[ @date_last_modified = ] date_last_modified

ジョブが最後に変更された日付を指定します。 @date_last_modifieddatetime で、既定値は NULL です。

[ @description = ] N'description'

ジョブの説明。 @descriptionnvarchar(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 = 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 ステップの名前。
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_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 スケジュールの名前 (このジョブでのみ一意)。
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のメンバーは、所有するジョブのみを表示できます。 sysadminSQLAgentReaderRole、および 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