SQL Server -- Job

  • SQL Server Job 简单使用

    -- 根据SP来检查用的那个作业

    SELECT*

    FROMmsdb.dbo.sysjobs JOB WITH( NOLOCK)

    INNERJOIN msdb.dbo.sysjobsteps STP WITH(NOLOCK )

    ON STP .job_id = JOB .job_id

    WHERE STP .commandLIKE N‘% sp_name %‘

    -- 禁用JOB

    EXECmsdb..sp_update_job

    @job_name=‘Job_name‘,

    @enabled=0        -- 0为禁用,1为启用

    -- 删除JOB ,具体参数查 MSDN,此处不再多说

    EXECmsdb.dbo.sp_delete_job  @job_name=‘Job_name‘;  -- job_name 参看select name  from msdb.dbo.sysjobs

    EXECmsdb.dbo.sp_start_job @job_name=‘Job_name‘

    EXECmsdb.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=0then‘Failed‘

    when a.run_status=1then‘Succeeded‘

    when a.run_status=2then‘Retry‘

    when a.run_status=3then‘Canceled‘

    else‘Unknown‘

    endasrun_status,

    a.[message]

    from msdb .dbo.sysjobhistory a innerjoin msdb .dbo. sysjobs b    on a.job_id =b .job_id

    innerjoin msdb.dbo.sysjobsteps s on a .job_id = s .job_id and a.step_id = s .step_id

    where b .enabled =1

-- 查询那些JOB 是禁用的

SELECT job_id ,name , enabled  FROMmsdb.dbo.sysjobs

where enabled =0

-- 常用 Job 表

SELECT*FROMmsdb.dbo.sysjobs            --存储将由 SQL Server 代理执行的各个预定作业的信息

SELECT*FROMmsdb.dbo.sysjobsteps;       --包含 SQL Server 代理要执行的作业中的各个步骤的信息

SELECT*FROM msdb.dbo.sysjobhistory      --包含有关 SQL Server 代理执行预定作业的信息

SELECT*FROMmsdb.dbo.sysjobstepslogs;   --包含所有 SQL Server 代理作业步骤的作业步骤日志

SELECT*FROMmsdb.dbo.sysjobschedules    --包含将由 SQL Server 代理执行的作业的计划信息

SELECT*FROMmsdb.dbo.sysjobactivity;    --记录当前 SQL Server 代理作业活动和状态

SELECT*FROMmsdb.dbo.sysjobservers      --存储特定作业与一个或多个目标服务器的关联或关系

SELECT*FROMmsdb.dbo.sysjobs_view;      --

SELECT*FROMmsdb.dbo.syscategories      --包含由 SQL Server Management Studio 用来组织作业、警报和操作员的类别

以上均为SQL描述,日常基本够用吧,或者还可以参考一下:http://www.cnblogs.com/kerrycode/p/3279559.html 这个文章,写的很全。
在此处补充一下 JOb 设置属性,有的时候我们可能看某个JOB但是发现其历史记录没有,或者只有1天的,可能就是设置的原因

这个地方可以根据实际的需求也对其进行日志,记录行数进行调整。
要查看某个JOB的历史记录也可以直接右击---查看历史记录,便能够看到其历史记录及执行状态。

  • SQL2008如何创建定时作业

    SQL2008如何创建定时作业?此方法也适应于Sql Server2005数据库,有兴趣的可以来看下!

    1.打开【SQL ServerManagement Studio】,在【对象资源管理器】列表中选择【SQL Server 代理】;

    --2.鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤;
    --3.展开【SQL Server 代理】列表,右击【作业】-->【新建作业】;
    --3.1 在【常规】选项卡中:
    --      输入作业名称,如"MyJob";
    --3.2  在【步骤】选项卡中:
    --3.2.1 点击【新建】,输入【步骤名称】,如“步骤1”,类型默认T-SQL脚本,也可以选择SSIS包等;
    --3.2.2 在【数据库】一栏选择要作业处理的数据库,在【命令】的右边空白编辑栏输入要执行的SQL代码,

    EXEC p_Name  --如:执行一个P_Name的存储过程

    --      也可以点击命令下面的【打开】,打开.sql脚本;

    --3.2.3 输入运行脚本后,建议点击【分析】,确保脚本语法正确,然后点击下面的【确定】按钮;

    --3.3  在【计划】选项卡中:
    --3.3.1 点击【新建】,输入【计划名称】,如“计划1”,计划类型默认是”重复执行”,也可以选择执行一次等;
    --3.3.2 在【频率】-->【执行】处选择“每天”、“每周”或“每月”,以“每天”为例,间隔时间输入间隔几天执行一次,
    --     下面还可以选择每天一次性执行或间隔一定的时间重复执行
    --3.3.3 在【持续时间】中选择计划开始执行的【起始日期】和【截止日期】,然后点击【确定】按钮;

    --注意要将服务设置为自动启动, 否则在重启服务器后作业就不运行了。
    --启动代理服务的方法:
    --开始-->运行-->输入services.msc-->找到【SQL Server 代理】的服务并双击-->【启动类型】选择“自动”-->【确定】

    --至此,定时作业已创建完毕。

    备注:

  1. 如果建作业的用户或者提醒的用户不存在, 则会出错;
  2. 我们需要在目的服务器上建立相关的WINDOWS用户或者SQL Server数据库登录, 也可以修改创建作业的脚本, 把目的服务器上不存在的用户替换成已经有的用户。
  3. 如果生成日志的物理文件目录不存在,也应该做相关的修改,例如d:\区转f:\区等。
  4. 字符串的 @command 命令里有分隔符号 go 也会出错, 可以把它去掉。
  • Sql Server中维护计划无法删除的解决方法

    1. 先执行下面的语句将维护计划的ID查出。
    select * from sysmaintplan_plans

    2. 将查出的ID填入到下面几句话中的‘‘中,并执行。
    delete from sysmaintplan_log where plan_id = ‘‘
    delete from sysmaintplan_subplans where plan_id = ‘‘
    delete from sysmaintplan_plans where id = ‘‘
    3. 在Sql Agent中删除相应的Job(维护计划会自动建立相应的Job).

    但是这个方法不能确定是否已将所有的系统表中的关于这个维护计划的记录都删除了,希望大家有知道的能给点意见,以上的方法自己使用过很多次了是可以的。

  • 导出SQL Server中所有Job的最简单方法

应用场景:

在将源SQL Server数据库服务器中的所有Job(作业)迁移至目标数据库服务器的过程中,需要先将这些Job导出为SQL脚本。

操作步骤:

1、在Microsoft SQL Server Management Studio中,选择SQL Server Agent->Jobs,按F7打开Object ExplorerDetails窗口,选中所有Job;

2、点击鼠标右键,选择Script Job as->CREATE To->New Query Editor Windows,然后所有Job会以SQL脚本的方式显示在查询窗口中。

  • 参考:

http://www.cnblogs.com/dudu/archive/2013/02/27/sql-server-export-job.htmlhttp://blog.itpub.net/16436858/viewspace-622142/http://www.cnblogs.com/peaceshow/archive/2012/07/16/2593934.htmlhttp://www.cnblogs.com/quietwalk/archive/2011/10/17/2215493.html

http://blog.163.com/ji_1006/blog/static/10612341201331653737500/

http://www.cnblogs.com/zerocc/p/3400529.html

http://www.cnblogs.com/kerrycode/p/3279559.html(重要)

http://blog.csdn.net/dba_huangzj/article/details/8300178

时间: 2024-10-11 22:55:38

SQL Server -- Job的相关文章

SQL Server 2008的MSSQLSERVER 请求失败或服务未及时响应

我的是SQL server 2008R2, 以前可以正常的启动SQL server(SQLEXPRESS).SQL server(MSSQLSERVER),有几天没有打开了,就在昨天 开机之后就无法启动MSSQLSERVER了,提示的信息如下图: 快速解决办法如下: 第一步:打开事件查看器,查看windows日志,点击应用程序,查看windows错误日志 http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html 第二步

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

numeric and int in sql server

类型映射 https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-mappings C#关键字 decimal https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/decimal The decimal keyword indicates a 128-bit data type. Compa

Performance Monitor4:监控SQL Server的IO性能

SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Application创建IO请求,到Disk完成IO请求的时间延迟.如果物理Disk不能及时完成IO请求,跟不上请求负载的速度,那么SQL Server就容易出现性能问题.SQL Server内部在执行一些特定的操作时,会和Disk做读写交互,这也会影响物理硬盘响应SQL Server的IO请求的性能,使查询进程处

Performance Monitor3:监控SQL Server的内存压力

SQL Server 使用的资源受到操作系统的调度,同时,SQL Server在内部实现了一套调度算法,用于管理从操作系统获取的资源,主要是对内存和CPU资源的调度.一个好的数据库系统,必定在内存中缓存足够多的信息,以减少从物理硬盘中读取数据的次数:如果内存是系统瓶颈,那么SQL Server一定会运行的非常慢.监控SQL Server的内存压力,需要从Widnows级别上,对内存使用的整体使用情况进行监控:从SQL Server级别上,监控SQL Server对内存资源的使用情况. 一,从Wi

SQL SERVER DATETIME应用

PRINT '上周的第一天:'+CONVERT(NVARCHAR(20),DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE())-1, 0),120); PRINT '本周的第一天:'+CONVERT(NVARCHAR(20),DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0),120); PRINT '上月的第一天:'+CONVERT(NVARCHAR(20),DATEADD(MONTH, DATEDIFF(MONTH,

sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...

使用sql server 导入平面文件源数据时,报错:错误 0xc02020a1: 错误 0xc020902a: 错误 0xc02020c5:错误 0xc0047022: 返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项. 错误 0xc02020a1: 数据流任务 1: 数据转换失败.列"列 6"的数据转换返回状态值 4 和状态文本"文本被截断,或者一个或多个字符在目标代码页中没有匹配项.". (SQL Server 导入

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

SQL Server通过外部程序集注册正则表达式函数(CLR函数)

1.下载dll程序集(通过C#编写的支持正则的方法),百度网盘下载: 1.1如果只想用,可以直接下载MSSQLRegexExtend.dll https://pan.baidu.com/s/1qX8eHa8 1.2正则程序集对应的解决方案MSSQLRegexExtend.sln,已打包 https://pan.baidu.com/s/1qXZja9m 2.SQL Server数据库注册程序集 CREATE ASSEMBLY AssemblyRegex from 'D:\MSSQLRegexExt