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中实现也好,通过其他软件调用也好或者其他方法。。。
老天爷,赐我个流氓吧!!! 展开
表中的数据都是通过工控软件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中实现也好,通过其他软件调用也好或者其他方法。。。
老天爷,赐我个流氓吧!!! 展开
5个回答
展开全部
//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
//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
展开全部
自己编写一个小程序,让这个程序长期运行在内存中,但是平时什么也不干,只在每天规定的时间,比如夜里12点进行一次删除操作。如果采集软件是自己开发的,这段代码直接放在里面就行了。采集软件不是自己开发的也没关系,单独写一段代码,编译成一个独立的EXE程序就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弄个作业 不就行了么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqlserver 里面有个东西 叫作业 在作业里面建一个工作 里面就可以定期处理你的任务啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询