趕在月末寫個博客。html
-- 根據SP來檢查用的那個做業 SELECT * FROM msdb.dbo.sysjobs JOB WITH( NOLOCK) INNER JOIN msdb. dbo.sysjobsteps STP WITH(NOLOCK ) ON STP .job_id = JOB .job_id WHERE STP .command LIKE N'% sp_name %' -- 禁用JOB EXEC msdb..sp_update_job @job_name = 'Job_name', @enabled =0 -- 0爲禁用,1爲啓用 -- 刪除JOB ,具體參數查 MSDN,此處再也不多說 EXEC msdb.dbo.sp_delete_job @job_name = 'Job_name'; -- job_name 參看select name from msdb.dbo.sysjobs EXEC msdb.dbo.sp_start_job @job_name='Job_name' EXEC msdb.dbo.sp_stop_job @job_name='Job_name' -- 查詢 已經啓用 Job 的執行狀態 select b.name, a.step_name, msdb.dbo.agent_datetime( run_date, run_time) AS 'RunDateTime' , a.run_duration, case when a.run_status=0 then 'Failed' when a.run_status= 1 then 'Succeeded' when a.run_status= 2 then 'Retry' when a.run_status= 3 then 'Canceled' else 'Unknown' end as run_status, a.[message] from msdb .dbo. sysjobhistory a inner join msdb .dbo. sysjobs b on a.job_id =b .job_id inner join msdb. dbo.sysjobsteps s on a .job_id = s .job_id and a.step_id = s .step_id where b .enabled = 1
其中 MSDB.dbo.agent_datetime(run_date,run_time) 爲SQL SERVER 2005 以後引入的未公開函數,能夠直接使用。 具體的解釋能夠參看 : http://blog.csdn.net/dba_huangzj/article/details/8300178 這個連接
咱們還能夠根據本身的需求也對上面的 SQL 進行修正與調整,找出失敗的,或者某個時間點的。
-- 查詢那些JOB 是禁用的 SELECT job_id , name , enabled FROM msdb.dbo.sysjobs where enabled = 0 -- 經常使用 Job 表 SELECT * FROM msdb.dbo.sysjobs --存儲將由 SQL Server 代理執行的各個預約做業的信息 SELECT * FROM msdb.dbo.sysjobsteps; --包含 SQL Server 代理要執行的做業中的各個步驟的信息 SELECT * FROM msdb.dbo.sysjobhistory --包含有關 SQL Server 代理執行預約做業的信息 SELECT * FROM msdb.dbo.sysjobstepslogs; --包含全部 SQL Server 代理做業步驟的做業步驟日誌 SELECT * FROM msdb.dbo.sysjobschedules --包含將由 SQL Server 代理執行的做業的計劃信息 SELECT * FROM msdb.dbo.sysjobactivity; --記錄當前 SQL Server 代理做業活動和狀態 SELECT * FROM msdb.dbo.sysjobservers --存儲特定做業與一個或多個目標服務器的關聯或關係 SELECT * FROM msdb.dbo.sysjobs_view; -- SELECT * FROM msdb.dbo.syscategories --包含由 SQL Server Management Studio 用來組織做業、警報和操做員的類別
以上均爲SQL描述,平常基本夠用吧, 或者還能夠參考一下 :http://www.cnblogs.com/kerrycode/p/3279559.html 這個文章,寫的很全。
在此處補充一下 JOb 設置屬性,有的時候咱們可能看某個JOB可是發現其歷史記錄沒有,或者只有1天的,可能就是設置的緣由
這個地方能夠根據實際的需求也對其進行日誌,記錄行數進行調整。要查看某個JOB的歷史記錄也能夠直接右擊---查看歷史記錄,便可以看到其歷史記錄及執行狀態。