sp_help_job (Transact-SQL)

自動化された操作を 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
    ジョブの識別番号を指定します。job_id のデータ型は uniqueidentifier で、既定値は NULL です。

  • [ @job_name =] 'job_name'
    ジョブの名前を指定します。job_name のデータ型は sysname で、既定値は NULL です。

    注意

    job_id または job_name のいずれかを指定する必要があります。両方を指定することはできません。

  • [ @job_aspect =] 'job_aspect'
    表示するジョブ属性を指定します。job_aspect のデータ型は varchar(9) で、既定値は NULL です。次のいずれかの値を指定できます。

    説明

    ALL

    ジョブのすべての属性情報

    JOB

    ジョブ情報

    SCHEDULES

    スケジュール情報

    STEPS

    ジョブ ステップ情報

    TARGETS

    表示対象情報

  • [ @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'
    サブシステムの名前を指定します。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

ジョブの名前。

enabled

tinyint

ジョブが実行可能かどうか。

description

nvarchar(512)

ジョブの説明。

start_step_id

int

実行を開始するジョブ ステップの ID。

category

sysname

ジョブ カテゴリ。

owner

sysname

ジョブ所有者。

notify_level_eventlog

int

どのような場合に通知イベントを Microsoft Windows アプリケーション ログに記録するかを示すビットマスク。次のいずれかの値になります。

0 = 記録しない

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

現在の実行ステータス。

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

このジョブでのみ一意なステップの識別子。

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 = 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 固定サーバー ロールのメンバです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。

  • 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