最近遇到了個問題,操作sqlserver數據庫,需要一次性刪除大量相同數據(成千上萬)的時候會出錯。異常如下:
消息 9002,級別 17,狀態 4,第 1 行
數據庫 ‘HopeWeb2009′ 的事務日誌已滿。若要查明無法重用日誌中的空間的原因,請參閱 sys.databases 中的 log_reuse_wait_desc 列。
翻閱了一些資料總結了解決的辦法大致分爲兩種,其中各有優缺點:
1.truncate table DataBaseName(數據庫名稱) 。
優點:速度比delete的速度快,且使用事務和系統日誌少。 缺點:不帶有任何判斷條件,不寫入日至
2.set rowcount 200
delete from Hope_T_Product where Product_ClassId=58
分批量刪除,每次刪除200~1000條數據,這種方法可解決數據庫的報出的異常。