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);