Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menentukan status pekerjaan?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perubahan Kolom Metadata Saja Baru di SQL Server 2016

  2. Kembalikan Semua Batasan yang Dinonaktifkan di SQL Server (Contoh T-SQL)

  3. Bagaimana cara melewatkan variabel SSIS dalam ekspresi ODBC SQLCommand?

  4. Perbarui semua kecuali satu catatan duplikat dalam tabel di SQL Server

  5. Menggunakan SMO, masih tidak bisa... ConnectionContext.ExecuteNonQuery(script) tidak bisa mengerti GO