當(dāng)前位置 主頁(yè) > 技術(shù)大全 >
在MSSQL中快速刪除大量數(shù)據(jù)時(shí),建議使用DELETE TOP (N)語(yǔ)句進(jìn)行分批刪除:
WHILE EXISTS (SELECT 1 FROM 表名)
BEGIN
DELETE TOP (10000) FROM 表名
-- 可選:添加WAITFOR延遲避免鎖競(jìng)爭(zhēng)
WAITFOR DELAY '00:00:01'
END
如果需要清空整個(gè)表,使用TRUNCATE TABLE比DELETE更快速:
TRUNCATE TABLE 表名
注意:TRUNCATE無(wú)法恢復(fù)且不記錄日志,使用前請(qǐng)確認(rèn)數(shù)據(jù)備份
對(duì)于分區(qū)表,可以通過(guò)切換分區(qū)實(shí)現(xiàn)快速數(shù)據(jù)刪除:
ALTER TABLE 表名 SWITCH PARTITION 源分區(qū)號(hào) TO 空表