次の方法で共有


sp_help_jobactivity (Transact-SQL)

適用対象: SQL Server

SQL Server エージェント ジョブのランタイム状態に関する情報を一覧表示します。

Transact-SQL 構文表記規則

構文

sp_help_jobactivity
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @session_id = ] session_id ]
[ ; ]

引数

[ @job_id = ] 'job_id'

ジョブ ID 番号。 @job_iduniqueidentifier で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @job_name = ] N'job_name'

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

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @session_id = ] session_id

情報を報告するセッション ID。 @session_idint で、既定値は NULL です。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

次の結果セットを返します。

列名 データ型 説明
session_id int エージェント セッション ID 番号。
job_id uniqueidentifier ジョブの識別子。
job_name sysname ジョブの名前。
run_requested_date datetime ジョブの実行が要求された日付。
run_requested_source sysname ジョブを実行する要求のソース。 次のいずれか:

1 = スケジュールに従って実行
2 = アラートに応答して実行する
3 = 起動時に実行
4 = ユーザーによる実行
6 = CPU アイドル スケジュールで実行
queued_date datetime 要求がキューに登録された日時を指定します。 NULL ジョブが直接実行された場合は 。
start_execution_date datetime ジョブが実行可能なスレッドに割り当てられた場合。
last_executed_step_id int 最近実行されたジョブ ステップのステップ ID。
last_exectued_step_date datetime 最後にジョブ ステップを開始した日付。
stop_execution_date datetime ジョブが停止した日付。
next_scheduled_run_date datetime ジョブが次に実行されるようにスケジュールされている場合。
job_history_id int ジョブ履歴テーブル内のジョブ履歴の識別子。
message nvarchar(1024) ジョブの最後の実行中に生成されたメッセージ。
run_status int ジョブの最後の実行から返された状態:

0 = エラーが失敗しました
1 = 成功
3 = キャンセル済み
5 = 状態が不明です
operator_id_emailed int ジョブの完了時に電子メールの通知を受けたオペレーターの ID 番号。
operator_id_netsent int ジョブの完了時に net send 経由で通知されるオペレーターの ID 番号。
operator_id_paged int ジョブの完了時に、ポケットベルの通知を受けたオペレーターの ID 番号。

解説

このプロシージャでは、ジョブに関する現在の状態のスナップショットが生成されます。 返される結果は、要求が処理された時点の情報を表します。

SQL Server エージェントは、エージェント サービスが開始されるたびにセッション ID を作成します。 セッション ID はテーブル msdb.dbo.syssessions** に格納されます。

@session_idが指定されていない場合は、最新のセッションに関する情報が一覧表示されます。

@job_nameまたは@job_idが指定されていない場合は、すべてのジョブの情報を一覧表示します。

アクセス許可

この手順では EXECUTE アクセス許可を付与できますが、これらのアクセス許可は SQL Server のアップグレード中にオーバーライドされる可能性があります。

他のユーザーには、msdb データベース内の次SQL Server エージェント固定データベース ロールのいずれかを付与する必要があります。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。

sysadmin のメンバーのみが、他のユーザーが所有するジョブのアクティビティを表示できます。

次の例では、現在のユーザーが表示するアクセス許可を持つすべてのジョブのアクティビティを一覧表示します。

USE msdb;
GO

EXEC dbo.sp_help_jobactivity;
GO