MSSQL sql server 2005 2008 删除上百万条数据的方法


最近系统需要清理指定日期范围的数据,我们采用
delete from 表名 where 时间>’时间1′ and 时间<='时间2'
————————————————————————————————–
运行了 整整一个小时,最后硬盘爆满,整个DB不对外服务,
无奈,只得另外寻找有效的删除大表数据的方法


由于delete 删除语句,会产生日志信息,所以会占用大量的磁盘空间,
所以我们采用”一种删除数据不产生日志”的方式,现将操作步骤记录如下:

1 备份数据库
2 select * into [新表] from [旧表] —-备份数据表
3 truncate table [旧表]
4 insert into [旧表] select * from [新表] where where 时间<='时间1' or 时间>‘时间2’ —将不需要删除的数据插入至数据表中
5 检查数据


相关阅读:
sql delete 关键字简介
mssql truncate table 关键字 简介