sql server中如何快速批量删除表里的百万条记录!直接用delete top(50000)还是有点慢...

2025-03-04 21:59:04
推荐回答(5个)
回答1:

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

回答2:

看需要删除的记录占该表的比例,如果全部不要则直接truncate;如果小部分要保留则可以复制需要保留的到新表,然后truncate,再将新表的数据复制回原表;如果需要删除的记录只是表中的一小部分,则可以通过脚本循环精准定位删除。当然如果一个表非常大,建议建立分区表方便大量的记录删除等操作。

回答3:

如果是该表的数据全部删除的话可以按szm341说的直接用truncate table 清空表,如果只是部分删除,而且保留的数据比较少的话可以先将保留的数据导出或存到一个临时表中,然後用truncate table 清空表,再将需要的数据导入即可。

回答4:

如果是清空表的话可以用truncate table tbname
如果删除指定数据的话还是用循环delete top吧

回答5:

drop table
然后在重建不就可以了