Delete LargeTable where readTime < dateadd(MONTH,-7,GETDATE())
一只名叫tom的猫
浏览 555回答 3
3回答
慕标5832272
只是一个小的更正。设置变量后必须使用COMMIT,否则WHILE将仅执行一次:DECLARE @Deleted_Rows INT;SET @Deleted_Rows = 1;WHILE (@Deleted_Rows > 0)BEGIN BEGIN TRANSACTION -- Delete some small number of rows at a time DELETE TOP (10000) LargeTable WHERE readTime < dateadd(MONTH,-7,GETDATE()) SET @Deleted_Rows = @@ROWCOUNT; COMMIT TRANSACTION CHECKPOINT -- for simple recovery modelEND