Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да определя статуса на дадена работа?

Бих искал да отбележа, че нито един от T-SQL на тази страница няма да работи точно защото никой от тях не се присъединява към sysessions таблица, за да получите само текущата сесия и следователно може да включва фалшиви положителни резултати.

Вижте това за справка:Какво означава да имаш работни места с нулева дата на спиране?

Можете също да потвърдите това, като анализирате sp_help_jobactivity процедура в msdb .

Разбирам, че това е старо съобщение в SO, но го намерих само частично полезно поради проблема.

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. Какво заключва | комуникационните буферни ресурси означават?

  2. Как да направя инсталатор във VB.NET, който може да инсталира SQL Server Express Edition?

  3. SQL Server char и nchar колоните търсят по различен начин

  4. Как да използвате TO_Char() в SQL Server 2008

  5. Възможно ли е да се изпълняват множество DDL изрази в транзакция (в рамките на SQL Server)?