Parece que puedes usar msdb.dbo.sysjobactivity
, buscando un registro con una fecha_ejecución_inicial no nula y una fecha_ejecución_final nula, lo que significa que el trabajo se inició, pero aún no se ha completado.
Esto le daría trabajos actualmente en ejecución:
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