次の方法で共有


dbo.sysjobactivity (Transact-SQL)

適用対象: SQL サーバー

現在のSQL Server エージェントジョブのアクティビティと状態を記録します。 このテーブルは msdb データベースに格納されます。

列名 データ型 説明
session_id int msdb データベースの syssessions テーブルに格納されているセッションの ID。
job_id uniqueidentifier ジョブの ID。
run_requested_date datetime ジョブの実行が要求された日時。
run_requested_source sysname(nvarchar(128)) ジョブの実行要求の発生元。

1 = SOURCE_SCHEDULER

2 = SOURCE_ALERTER

3 = SOURCE_BOOT

4 = SOURCE_USER

6 = SOURCE_ON_IDLE_SCHEDULE
queued_date datetime ジョブがキューに格納された日時。 ジョブが直接実行される場合、この列は NULL です。
start_execution_date datetime 日付と時刻のジョブの実行がスケジュールされています。
last_executed_step_id int 実行された最後のジョブ ステップの ID。
last_executed_step_

date
datetime 最後のジョブ ステップの実行を開始した日時。
stop_execution_date datetime ジョブの実行が完了した日時。
job_history_id int sysjobhistory テーブル内の行を識別するために使用します。
next_scheduled_run_date datetime ジョブの実行がスケジュールされている次の日付と時刻。

この例では、すべてのSQL Server エージェント ジョブの実行時の状態を返します。 SQL Server Management Studio で、次の Transact SQL を実行します。

SELECT sj.Name, 
	CASE
		WHEN sja.start_execution_date IS NULL THEN 'Not running'
		WHEN sja.start_execution_date IS NOT NULL AND sja.stop_execution_date IS NULL THEN 'Running'
		WHEN sja.start_execution_date IS NOT NULL AND sja.stop_execution_date IS NOT NULL THEN 'Not running'
	END AS 'RunStatus'
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobactivity sja
ON sj.job_id = sja.job_id
WHERE session_id = (
	SELECT MAX(session_id) FROM msdb.dbo.sysjobactivity); 

参照

dbo.sysjobhistory (Transact-SQL)