ydzf.net
当前位置:首页 >> sqlsErvEr怎么批量删除大量数据 >>

sqlsErvEr怎么批量删除大量数据

用一次性删除的方法是很不明智的.1、delete操作会被完整记录到日志里,它需要大量空间和时间;2、如果删除中间发生中断,一切删除会回滚(在一个事务里);3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍操作完成

delete form tablename where 关键字 in (select top 2000 关键字 from tablename where 时间 评论0 0 0

方法一:用delete ,这么大量的数据删除,不希望你用其他程序去完成,会超时的.你就新建一个查询,再写入查询句 你一定会有一个键的,比如identity就更好了,delete tb where id <80000000 删除之前先确认一下数据库文件的增长,设为不受限制,日志文件也一样.完成删除之后,收缩一下数据库 方法二:改表名,用数据导入的方法,将要保留的数据用查询导出到原表名,再设置回键索引信息,再删除旧表.

用脚本

可以先备份你需要的数据,后删除数据,再导入1.SELECT * INTO [临时表] FROM [表]WHERE .2.TRUNCATE TABLE [表]GO3.INSERT [表] SELECT * FROM [临时表]OK

sqlserver2000?看你开始菜单里sqlserver2000是否有查询分析器需要通过语句进行批量修改

删除大量数据速度是正常的.如果表里面数据都不要了,可以直接truncate如果表里面数据只有一小部分要得,可以把小的备份出来,然后truncate表,然后再把备份的数据导回来如果只是删除表中部分数据,可以写成循环小批量删除脚本;如果服务器性能好,百万数据删除还是很快的

估计你是想做web中的批量删除.推荐用服务器端语言拼成以半角逗号分隔的id字符串如1楼例举的1,2,3,4,5然后将这个变量拼成SQL语句.如果是纯SQL,你要删除的这些数据会有一些共同点,按照共同点删除即可.如delete from table where id in (xxxxxxxx) 或者delete from table where id in ( select id from table where enabled = 0)之类的.

例:update表setbit字段=bit字段-1最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用,再者也好长没写过BLOG了,一起探讨一下如果你的硬盘空间小,并

delete from 表 where 列 between 开始值 and 终止值

网站首页 | 网站地图
All rights reserved Powered by www.ydzf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com