0
我想從數據庫表中刪除數百萬條記錄。爲什麼在WHILE循環的每次迭代中提交事務不會阻止事務日誌長大?
我使用了一個WHILE循環,以便在每次迭代中刪除TOP 25000行並提交它們。
我的假設是,如果我刪除部分行並在每次迭代中提交,我會阻止事務日誌長大。
我做類似下面:
WHILE (1=1)
BEGIN
-- Logic to BREAK the loop like if no rows left to delete
IF ...
BEGIN TRANSACTION
DELETE TOP 25000
FROM FooBar
Where SomeDate<AnotherDate
COMMIT
END
但是我結束「的事務日誌數據庫 'FooBar的' 已滿。'
我應該怎麼做才能防止事務日誌長大? -Committing不會刪除它?
什麼是數據庫的恢復模式?它需要很簡單。而且你在這裏不需要交易。一個陳述是一個交易。 – Paparazzi