Saya ingin menunjukkan bahwa tidak ada T-SQL di halaman ini yang akan bekerja dengan tepat karena tidak ada yang bergabung ke syssessions tabel untuk mendapatkan hanya sesi saat ini dan karena itu dapat menyertakan positif palsu.
Lihat ini untuk referensi:Apa artinya memiliki pekerjaan dengan tanggal berhenti nol?
Anda juga dapat memvalidasi ini dengan menganalisis sp_help_jobactivity prosedur di msdb .
Saya menyadari bahwa ini adalah pesan lama di SO, tetapi saya menemukan pesan ini hanya membantu sebagian karena masalahnya.
SELECT
job.name,
job.job_id,
job.originating_server,
activity.run_requested_date,
DATEDIFF( SECOND, activity.run_requested_date, GETDATE() ) as Elapsed
FROM
msdb.dbo.sysjobs_view job
JOIN
msdb.dbo.sysjobactivity activity
ON
job.job_id = activity.job_id
JOIN
msdb.dbo.syssessions sess
ON
sess.session_id = activity.session_id
JOIN
(
SELECT
MAX( agent_start_date ) AS max_agent_start_date
FROM
msdb.dbo.syssessions
) sess_max
ON
sess.agent_start_date = sess_max.max_agent_start_date
WHERE
run_requested_date IS NOT NULL AND stop_execution_date IS NULL