Sql-Server
如何記錄作業開始的方式?
使用 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