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