Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào tôi có thể xác định tình trạng của một công việc?

Tôi muốn chỉ ra rằng không có T-SQL nào trên trang này sẽ hoạt động chính xác bởi vì không có T-SQL nào trong số chúng tham gia vào syssessions để chỉ nhận được phiên hiện tại và do đó có thể bao gồm các kết quả dương tính giả.

Xem phần này để tham khảo: Việc làm có ngày ngừng hoạt động có nghĩa là gì?

Bạn cũng có thể xác thực điều này bằng cách phân tích sp_help_jobactivity thủ tục trong msdb .

Tôi nhận ra rằng đây là một thông báo cũ trên SO, nhưng tôi thấy thông báo này chỉ hữu ích một phần vì sự cố.

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. Chuyển phân vùng bảng trong SQL Server:Hướng dẫn

  2. Công cụ Dữ liệu SQL Server có thể hoạt động với SQL Server 2008 SSIS không?

  3. Làm cách nào để cập nhật giá trị của tất cả các thuộc tính xml trong biến xml bằng t-sql?

  4. SQL Server - chèn nhiều hàng với câu lệnh đơn (kiểu ANSI)

  5. Danh sách các bảng được sử dụng trong tất cả các thủ tục được lưu trữ với tên lược đồ của SP