在SQL Server中建立定时任务,处理时间超过一天的记录

本文介绍了如何在SQL Server中利用作业创建定时任务,每天17:00自动删除超过一天的记录。详细步骤包括开启SQL Server代理,新建作业,设置删除语句,以及调度任务。删除语句主要使用了`DATEDIFF`函数来判断记录时间超过24小时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个不能用触发器,要用作业。(转贴)

打开企业管理器,进入你服务器名下的“管理”,启动SQL Server代理。然后查看服务器属性,选中“自动启动SQL Server代理”。

接下来进入SQL Server代理下的“作业”,在右边点右键选“新建作业”。

在“常规”里,随便输入一个作业名,分类要选最后一项“数据库维护”。

在“步骤”里,点“新建步骤”,随便输入一个步骤名,数据库选成你的数据库,命令里输入你删除记录的语句,也可以通过“打开”来装载T-SQL脚本,弄好后记得分析一下,没有问题再继续。在“高级”里将“失败时的操作”改成“转到下一步”。

在“调度”里,点“新建调度”,随便输入一个调度名,点“更改”,“发生频率”选每天,“一次发生于”里设置17:00:00,然后点“确定”,再点“确定”,再点“确定”,配置就完成了。 


SQL语句:

update n_project set p_flag = 0, p_stime = NULL where p_id IN (select p_id from n_project where p_flag = 1 and datediff(hh, p_stime, GetDate()) > 24);    --将超过一天的记录选出,设置p_flag和p_stime字段

注:hh为小时,datediff 可比较两个日期的时间差,GetDate()可获得当前时间

 

DateDiff 函数  (转贴)

返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。

语法

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear]])

DateDiff 函数语法中有下列命名参数:

部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值