在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 空表