赶在月末写个博客。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的历史记录也能够直接右击---查看历史记录,便可以看到其历史记录及执行状态。