Sembra che tu possa usare msdb.dbo.sysjobactivity
, verificando la presenza di un record con start_execution_date non nullo e stop_execution_date nullo, il che significa che il lavoro è stato avviato, ma non è stato ancora completato.
Questo ti darebbe lavori attualmente in esecuzione:
SELECT sj.name
, sja.*
FROM msdb.dbo.sysjobactivity AS sja
INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
WHERE sja.start_execution_date IS NOT NULL
AND sja.stop_execution_date IS NULL