如何删除大量数据 sql server2005

你要整表删除吗,那么你用truncate table 可以瞬间删除所有记录,但是这个不记录log,无法回滚。也不能加条件。
如果要加条件,就只好用delete了,或者就是用DTS把你所要的表导出到文本,然后清空表,再把文本导回表中。

你用sp_spaceused 'talbe_name'可以迅速查到你要的记录数,及表所占的空间。 

truncate table table_name
delete table_name where .........
sp_spaceused 'table_name' 

如果这样你可以用bcp先导出你要的5千万数据
先count(*)你的记录然后-8kw=@num
1、在cmd下,导出你要保留的记录到文本data_1中
E:\>bcp  "select top @num * from db.dbo.table order by id desc" queryout data_1.txt -c -t "|" -r \n -U sa -P password
2、truncate table table_name   ---trun掉你的表
3、将 data_1.txt 的数据导入到table中
      E:\temp>bcp db.dbo.Table in data_1.txt -b 5000 -c -t ",|" -r \n -U sa -P password
4、ok搞定
速度绝对比delete快不知道多少倍。
而且日志也比较小。

然后你要高出1千五百万也可以用bcp来做。
效率很高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值