Sql-Server

如何記錄作業開始的方式?

  • October 1, 2014

使用 SQL Server 代理,我創建了一個執行一些 SQL 的作業。此 SQL 在一個數據庫上執行一些工作,然後將一行添加到單獨數據庫上的日誌記錄表中。

該作業按幾個計劃執行,有時也手動啟動。

在日誌行上,我希望能夠記錄啟動 Job 的原因。換句話說,我想檢測 Job 是由 schedule 1、schedule 2 還是 ad hoc 啟動的。

這可能嗎?如果是這樣,怎麼做?

這是獲取正在執行的作業狀態以及計劃資訊的腳本

SELECT  sj.name JobName,
       sj.start_step_id StartStepID,
       s.name JobScheduleName
FROM    msdb.dbo.sysjobactivity AS sja
       INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
       INNER JOIN msdb.dbo.sysjobschedules AS js ON js.job_id = sj.job_id
       INNER JOIN msdb.dbo.sysschedules AS s ON js.schedule_id = s.schedule_id
WHERE   sja.start_execution_date IS NOT NULL
       AND sja.stop_execution_date IS NULL

引用自:https://dba.stackexchange.com/questions/78125