sqlserver 一次性刪除大量數據

http://www.51obj.cn/?p=183

 

最近遇到了個問題,操作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條數據,這種方法可解決數據庫的報出的異常。

發佈了4 篇原創文章 · 獲贊 8 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章