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

    技术2022-07-13  70

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

    Processed: 0.014, SQL: 9