sqlserver数据库某表定期删除功能实现



新建数据库BackDel,建立表Test(id,tm,v),类型随意。先建立任务每5分钟插入一条数据,再建立删除任务。

sqlserver 启动代理服务,打开管理其界面,新建作业,常规里面输入名称,选择类别,输入说明

sqlserver数据库某表定期删除功能实现_第1张图片

转到步骤中,设定执行什么任务,新建步骤,步骤常规里面名称,选择T-Sql类型,选择数据库,在命令中输入sql语句

declare @tm datetime --定义tm
select @tm=getdate() --查询时间
insert into Test values(@tm,1) --插入语句//@tm应该为values值

注:

自己在工作计划命令中测试的sql代码

declare @ti datetime   //定义格式
--select @ti=getdate()
Select @ti=CONVERT(varchar(100), GETDATE(), 20)   //获取系统时间为年月日时分秒毫秒,关于时间格式转换本博客里有详细的文章
insert into tttt values(@ti,1)

insert into Test values(1,1) --适用于表内两列数据的插入,test代表表名字,(1,1)表示要插入的值

insert into Test(列1,列2,。。。。。) values(列1值,列2值,。。。。。) --指定列指定值,其他值null

sqlserver数据库某表定期删除功能实现_第2张图片

转到计划中,计划什么时候运行,新建计划,输入名称,选择计划类型为重复执行,执行间隔为1天,每天频率为5分钟插入一条数据,点击确定

sqlserver数据库某表定期删除功能实现_第3张图片

每5分钟插入一条数据的定时任务就建立,测试运行效果显示成功

sqlserver数据库某表定期删除功能实现_第4张图片

建立删除任务,步骤同上面一样,sql语句不同而已

declare @tm datetime
--select @tm=dateadd(month,-6,getdate())  //删除当前日期6个月之前的数据
select @tm=dateadd(day,-1,getdate())     //删除当前日期前一天的数据
delete from test where tm <= 1    //1相当于条件,只针对本例

delete from test where tm>=dateadd(month,-6,getdate())//删除表中6个月之前的数据

sqlserver数据库某表定期删除功能实现_第5张图片

最终建立的任务如下图

sqlserver数据库某表定期删除功能实现_第6张图片



你可能感兴趣的:(sqlserver数据库某表定期删除功能实现)