sql server 2005 如何实现对表数据进行定期删除

网络上搜索多是对数据库进行自动备份和自动删除的,有没有实现对表数据定期删除操作的方法。表中的数据都是通过工控软件ifix通过ODBC采集的操作记录,这些记录按时间排列,如... 网络上搜索多是对数据库进行自动备份和自动删除的,有没有实现对表数据定期删除操作的方法。
表中的数据都是通过工控软件ifix 通过ODBC采集的操作记录,这些记录按时间排列,如:
时间 标签名 标签描述 标签值
2013-9-21 22:46:55 DI060523 风机运行 close
...
记录都是按时间采集的,有连贯性,由于数据量太大,每天会采集9万条记录,所以时间一长数据库变大,通过上位机读取该数据库表时,处理速度较慢,这些操作记录只是在工厂设备停机时才调出来查询,因此只用保存近几天数据即可。请问有什么方法实现。
以前使用的是Access数据库,由于该数据库的2G限制,超出容量便报错,而且存储数据太多时,通过ifix调用过程非常缓慢,经常死机。所以换用sql server 2005 ,目前调用该数据库表时速度比较满意,但是没有解决自动删除数据问题,现在该表数据不断增大,定时炸弹啊。
Access数据库时也没有实现自动删除,是通过vba的代码手动点按钮实现
Delete from Alarm where Alarm.最后时间 <= Now -7 (删除该表7天以前记录)
但是这个在sql server 2005上运行提示连接错误,不知错在哪里,各位大神,最好有一个方法自动删除记录,在sql中实现也好,通过其他软件调用也好或者其他方法。。。
老天爷,赐我个流氓吧!!!
展开
 我来答
s287937592
推荐于2016-08-04 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:93万
展开全部
//1.你创建一个insert触发器,每当数据插入的时候判断一下是不是有你要删除的数据。
//2.你还可以创建一个存储过程,然后再做一个作业任务,让 sql server 每多长时间删除一次。
下面给出的是第一种办法的insert触发器,不过这样每次insert 他都会执行一次,对数据库有点耗资源
create TRIGGER Trigger1
ON dbo.users
FOR insert
AS
Begin
declare @mintime datetime,@maxtime datetime
select @mintime =min(时间),@maxtime =max(时间) from Alarm
delete from Alarm where DATEDIFF(d,@mintime ,@maxtime )>=7
End
阿扬电声
2013-09-22 · TA获得超过1224个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:105万
展开全部
自己编写一个小程序,让这个程序长期运行在内存中,但是平时什么也不干,只在每天规定的时间,比如夜里12点进行一次删除操作。如果采集软件是自己开发的,这段代码直接放在里面就行了。采集软件不是自己开发的也没关系,单独写一段代码,编译成一个独立的EXE程序就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hahawujin
2013-09-23 · 贡献了超过103个回答
知道答主
回答量:103
采纳率:100%
帮助的人:19.8万
展开全部
弄个作业 不就行了么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rkc009
2013-09-22 · TA获得超过1499个赞
知道大有可为答主
回答量:2098
采纳率:60%
帮助的人:1700万
展开全部
sqlserver 里面有个东西 叫作业 在作业里面建一个工作 里面就可以定期处理你的任务啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pihhaai26281
2013-09-22
知道答主
回答量:46
采纳率:0%
帮助的人:9.1万
展开全部
我是来抽奖的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式