zoukankan      html  css  js  c++  java
  • Sql Server Job 简单使用

    Sql Server Job 简单使用

    赶在月末写个博客。

    复制代码
    -- 根据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的历史记录也可以直接右击---查看历史记录,便能够看到其历史记录及执行状态。

     
     
    标签: Job
  • 相关阅读:
    PHP引用与global操作符
    php关联数组与索引数组及其显示
    vim列模式
    PHP 魔术方法之__set() __get() 方法
    给图片、表格、公式自编号
    如何将本地项目与coding.net/github上的项目绑定
    用 ElementTree 在 Python 中解析 XML
    用 ElementTree 在 Python 中解析 XML
    正则表达式介绍
    一个javascript面试题解析
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3402118.html
Copyright © 2011-2022 走看看