dbo.sysjobactivity (Transact-SQL)

适用于:SQL Server

记录当前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)