dbo.sysjobactivity (Transact-SQL)

適用於:SQL Server

記錄目前的 SQL Server Agent 作業活動和狀態。 此資料表會儲存在 msdb 資料庫中。

資料行名稱 資料類型 描述
session_id int 儲存在 msdb 資料庫中 syssessions 資料表中的 會話識別碼。
job_id uniqueidentifier 作業的識別碼。
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 執行的最後一個作業步驟識別碼。
last_executed_step_

date
datetime 上次作業步驟開始執行的日期和時間。
stop_execution_date datetime 作業完成執行的日期和時間。
job_history_id int 用來識別 sysjobhistory 資料表中的資料 列。
next_scheduled_run_date datetime 下一個排程作業執行的日期和時間。

範例

此範例會傳回所有 SQL Server Agent 作業的執行時間狀態。 在 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)