在MSSQL中快速删除大量数据时,建议使用DELETE TOP (N)语句进行分批删除:
WHILE EXISTS (SELECT 1 FROM 表名)
BEGIN
DELETE TOP (10000) FROM 表名
-- 可选:添加WAITFOR延迟避免锁竞争
WAITFOR DELAY '00:00:01'
END
如果需要清空整个表,使用TRUNCATE TABLE比DELETE更快速:
TRUNCATE TABLE 表名
注意:TRUNCATE无法恢复且不记录日志,使用前请确认数据备份
对于分区表,可以通过切换分区实现快速数据删除:
ALTER TABLE 表名 SWITCH PARTITION 源分区号 TO 空表