注册 登录
编程论坛 SQL Server论坛

菜鸟求助,SQL 2000数据库表中新的数据插入后,删除1年前旧的数据,如何实现

虎子8989 发布于 2017-04-18 11:21, 2240 次点击
菜鸟求助,SQL 2000数据库表中新的数据插入后,删除1年前旧的数据,如何实现
4 回复
#2
mywisdom882017-04-18 17:32
你这个思路不怎么好吧。
1、是每次插入1条数据后,就要删除1条记录?删除1年前的?
2、你表要有1个字段,记录插入记录时的日期。
#3
虎子89892017-04-18 22:05
表中有时间字段,结构如下:
只有本站会员才能查看附件,请 登录

数据追加纪录到表里,数据保存为1年
#4
mywisdom882017-04-19 09:06
有2种方法:
1种是跑计划,定义1个计划job,让他每天运行1次。
2种是用触发器,当每次插入数据时,就触发。下面介绍触发器
-- 假设表名 tb,日期字段名 dt,
-- 假设数据库名 mytest
use mytest
go
-- 下面是建立1个触发器,当插入数据时,就删除比当前时间大365天的数据
create trigger [dbo].[tr_tb_auto_del]
on [dbo].[tb]
for insert
as
begin
   delete [dbo].[tb] where datediff(day,dt,getdate()) > 365
end
#5
厨师王德榜2017-04-25 14:41
这个在我们这里常见,一般的解决办法是做一个计划任务,一般放在每个周末运行,用  where datediff(day,dt,getdate()) > ? 这个条件就可以了。这样也可以不必再整触发器了。
1