Giải pháp này sẽ hoạt động:
SELECT DATEDIFF(SECOND,aj.start_execution_date,GetDate()) AS Seconds
FROM msdb..sysjobactivity aj
JOIN msdb..sysjobs sj on sj.job_id = aj.job_id
WHERE aj.stop_execution_date IS NULL -- job hasn't stopped running
AND aj.start_execution_date IS NOT NULL -- job is currently running
AND sj.name = 'JobX'
and not exists( -- make sure this is the most recent run
select 1
from msdb..sysjobactivity new
where new.job_id = aj.job_id
and new.start_execution_date > aj.start_execution_date
)
Đây là một kiểm tra tổng quát hơn phụ thuộc vào các bảng hệ thống. Nếu bạn muốn một lộ trình tùy chỉnh, bạn có thể chèn công việc vào bảng nhật ký công việc mà bạn đã tạo.