SQLServer创建定时作业
前⾔
  如果在SQL Server ⾥需要定时或者每隔⼀段时间执⾏某个存储过程或3200字符以内的SQL语句时, 可以⽤SQL Server代理->作业来实现。
实施步骤
1、哪⾥有作业?
  在数据库的SQL Server 代理中,可以看到作业,当启动代理服务的时候,作业也就可以启动了。
2、什么情况下⽤作业?
⼀般的存储过程是在⽤户进⾏触发的时候执⾏的,但是假如⽤户⼀直不触发这个事件,但是却想执⾏,这时候就可以⽤作业了。它⼴泛应⽤于数据库备份、定时定点地更新数据库表等操作中。
3、怎么建⽴作业?
  (1)右击作业—>新建作业—>常规中—>填写各作业属性:
    其中,名称是⾃定义本次作业的名称,勾选[启⽤],分类处可选择也可⽤默认的[未分类(本地)],所有者默认为登录SQL Server⽤户,也可选其它的登录,说明中填写本次⼯作详细描述内容。
  (2)步骤—>常规—>新建作业步骤—>填写步骤名称、数据库、运⾏的sql语句或者是存储过程等:
    步骤名是⾃定义第⼀步骤名称,类型可填Transact-SQL(TSQL)脚本,数据库是要操作的数据库,命令中如果是简单的SQL直接写进去即可,也可打开⼀个已写好的*.sql⽂件;如果要执⾏存储过程,填exec p_procedure_name v_parameter1,[ v_parameter2…
v_parameterN] ],最后确定。另外,如果有多个步骤,可以再次调⽤下⾯的新建按钮,也可以对已有的多个步骤插⼊、编辑、删除!
  (3)、点击计划—>新建—>新建作业计划:
    警告、通知、⽬标等可以写,也可以不写,最后点击确定,这就制作出⼀个作业来啦。
sqlserver备份表语句  (4)、启动上述作业的服务:
后话:
  实际中,写的⼀般都是带有很多逻辑的存储过程,同时作业不存储在具体的⽤户数据库下⾯,⽽是存
储在我们的系统库msdb中,所以⾥⾯有关于作业的详细记录,⽐⼀般的表要⼤。我们在msdb中经常会⽤他的系统表来查询关于作业的信息,所以,这些系统表我们还是很有必要去看看的。
  另附跟作业执⾏相关的⼀些SQL Server知识:
  1、登录⽤户要⼀致
    SQLSERVERAGENT服务必须正常运⾏,启动它的NT登录⽤户要跟启动SQL Server数据库的NT登录⽤户⼀致。
    右键点作业可以查看作业执⾏的历史记录情况,也可以⽴即启动作业和停⽌作业。
  2、保留历史记录
    最近在看作业历史记录时,发现有的作业记录的历史记录多,有的作业记录的记录的历史记录少。
    如何能使某些作业按各⾃的需求,保留⼀段时间,⽐如保留⼀个⽉的历史记录?
    在SQL Server代理->右键选属性->历史记录:勾选并设置[限制作业历史记录⽇志的⼤⼩] 
  3、作业迁移
    如果想把作业由⼀台机器迁移到另⼀台机器,可以先保留好创建作业的脚本,然后在另⼀台机器上运⾏:
    先导出所有作业的创建脚本操作步骤:管理->SQL Server代理->作业(⿏标右键)->所有任务->⽣成SQL脚本->保存到操作系统下的某个sql⽂件;
    然后,导出某⼀个作业的创建脚本操作步骤:管理->SQL Server代理->作业->选中待转移的作业(⿏标右键)->所有任务->⽣成SQL脚本->保存到OS下的某个sql⽂件。
    接着,在⽬的服务器上运⾏刚才保存下来的创建作业的sql脚本。 ( 如果建作业的⽤户或者提醒的⽤户不存在,则会出错;我们需要在⽬的服务器上建⽴相关的WINDOWS⽤户或者SQL Server数据库登录,也可以修改创建作业的脚本,把⽬的服务器上不存在的⽤户替换成已经有的⽤户。如果⽣成⽇志的物理⽂件⽬录不存在,也应该做相关的修改,例如d:/区转f:/区等字符串的 @command 命令⾥有分隔符号 go 也会出错,可以把它去掉)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。