如何创建SQL数据库代理作业(定时任务)及案例

1、什么是数据库代理作业呢?
     sql代理作业主要是用来存储作业信息,作业包含一个或多个作业步骤,每个步骤都有自己的任务或者每个任务的执行时间。
比如:你想要在特定时间中定时执行某段代码,已达到你想要的效果,但是数据过多的话,就不能在本地开发工具上运行,因为数据过多会导致一种卡死的状态,所以就有数据库代理作业。在sql数据库中创建代理作业定时执行你想要的代码已达到某种效果,这样就不用你手动执行了。
2、现在我们先写好需要定时的代码再来创建代理作业:
例子:检测发布统一放假表中是否含有新发布的放假数据,发布状态为0的话就是新发布的,那么我们就要统一生成每个学生的放假数据。

---- 先定义变量,变量名格式:@名 变量类型
declare @ID int,@ID1 int,@PersonnelID int,@JQMC nchar(15),@liyuanStart nchar(20),@liyuanEnd nchar(20),@huiyuanStart nchar(20),@huiyuanEnd nchar(20);
declare @nowTime datetime = GETDATE();   --当前时间

begin--开始
print '放假通知'--输出
 --- 查询是发否有新布且有效的放假数据
 declare a_test_main cursor for select 发布ID,假期名, CONVERT(varchar(20), 离校开始时间, 120),CONVERT(varchar(20), 离校结束时间, 120),CONVERT(varchar(20), 回校开始时间, 120),CONVERT(varchar(20), 回校结束时间, 120) from O发布统一放假表 O 
 where 有效否 = 'true' and 作废否 = 'true' and 发布否 = 0
  open a_test_main;--打开游标
   while 1=1--开始循环
    begin--开始
 fetch next from a_test_main into @ID,@JQMC,@liyuanStart,@liyuanEnd,@huiyuanStart,@huiyuanEnd --把查询出来的值赋值到变量中
 if(@@fetch_status!=0)break;--如果没有结果退出循环
 if not exists(select * from O请假表 A where A.发布ID = @ID)  --- 判断请假表中是否已经该条放假ID,没有就进入begin--开始
 begin--开始
    declare b_test_main cursor for select A.PersonnelID from A22PersonnelID A  ---查询出人员表里面的人员ID
    open b_test_main;--打开游标
    while 1=1--开始循环
       begin--开始
       fetch next from c_test_main into @PersonnelID--赋值到变量中
      if(@@fetch_status!=0)break;--如果没有结果退出循环
      if exists(select * from A22PersonnelID A where A.PersonnelID = @PersonnelID)   ---    判断是否存在该人员ID,存在进入begin--开始生成数据
      begin--开始
         insert into O请假表(学生ID,分类ID,发布ID,回园开始时间,回园结束时间,离园开始时间,离园结束时间)   
         values(@PersonnelID,6,@ID,@huiyuanStart,@huiyuanEnd,@liyuanStart,@liyuanEnd)   --插入数据,注意:值要对应
      end--结束
      end--结束
      close b_test_main--关闭游标
      deallocate b_test_main--释放游标
    update O发布统一放假表 set 发布否 = 1 where 发布ID = @ID    --修改放假表里面的发布否 = 1,即代表已经发布就不会再发布了
 end--结束
 end--结束
 close a_test_main--关闭游标
 deallocate a_test_main--释放游标
end--结束

此处运用到游标知识,每个循环开始首先要打开游标,结束再关闭游标并且释放游标,这里就不多讲了,可以去看看游标的定义:点击此处查看游标定义

2、创建代理作业步骤:
①、首先新建作业:
在这里插入图片描述
②、常规:---------命名。
在这里插入图片描述
③、步骤 ----->新建,设置成功失败后续步骤怎么执行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
④、计划:设置执行时间,时间是只有设置的,点击确定就完成了。
在这里插入图片描述
在这里插入图片描述
⑤、最后需要点击作业开始步骤,并且可以查看历史记录。
在这里插入图片描述
在这里插入图片描述
作业开始步骤完成:
在这里插入图片描述
查看历史记录:
在这里插入图片描述
简单的数据库代理作业就这样完成了,数据库的运行速度快,所以几千条数据生成也不用太多的时间,快捷又方便,大家可以尝试一下新知识哦!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值