我需要知道给定的作业当前是否在Ms SQL 2008服务器上运行.因此,不要再次调用可能导致并发问题的相同工作.
我曾使用以下SQL列出所有没有停止日期的作业.我以为我可以用它来找到所有活跃的工作.我注意到的是,我在这个表中有一些空的stop_execution_date.在此表中多次重复一些相同的作业(相同的job_id).
select job.*, activity.*
from msdb.dbo.sysjobs_view job
inner join msdb.dbo.sysjobactivity activity
on (job.job_id = activity.job_id)
where run_Requested_date is not null and stop_execution_date is null
Run Code Online (Sandbox Code Playgroud)
当我运行EXEC msdb.dbo.sp_help_job
这些作业时,我看到它们当前的执行状态是空闲的.
这些工作代表什么?当工作没有被正确杀死时,这是行为吗?