Share via


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_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) であり、これらの値のいずれかを指定できます。

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

[ @job_type = ] 'job_type'

レポートに含めるジョブの種類。@job_typeは varchar(12) で、既定値は NULL. @job_typeまたは LOCALMULTI-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は tinyint で、既定値は NULL.

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

[ @execution_status = ] execution_status

ジョブの実行状態を指定します。 @execution_statusは int であり、これらの値のいずれかになります。

Value 説明
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 = 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 スケジュールがアクティブ () かどうか (10)。
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) このターゲット サーバーで前回実行されたジョブからの結果メッセージ。

アクセス許可

このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

他のユーザーには、データベース内の固定データベース ロール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