刪除表中重復記錄_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫中刪除重復記錄一直是件挺煩人的事,本人收集了acle跟SqlServer的快速刪除重復記錄的方法,供大家參考,希望對大家有所幫助。SQLSQLSERVERSERVER想必每一位SQLSERVER開發(fā)人員都有過類似的經歷,在對數據庫進行查詢或統(tǒng)計的時候不時地會碰到由于表中存在重復的記錄而導致查詢和統(tǒng)計結果不準確。解決該問題的辦法就是將這些重復的記錄刪除,只保留其中的一條。在SQLServer中除了對擁有十幾條記錄的表進行人工刪除外,

2、實現刪除重復記錄一般都是寫一段代碼,用游標的方法一行一行檢查,刪除重復的記錄。因為這種方法需要對整個表進行遍歷,所以對于表中的記錄數不是很大的時候還是可行的,如果一張表的數據達到上百萬條,用游標的方法來刪除簡直是個噩夢,因為它會執(zhí)行相當長的一段時間。四板斧四板斧——輕松消除重復記錄輕松消除重復記錄殊不知在SQLServer中有一種更為簡單的方法,它不需要用游標,只要寫一句簡單插入語句就能實現刪除重復記錄的功能。為了能清楚地表述,我們首先

3、假設存在一個產品信息表Products,其表結構如下:CREATETABLEProducts(ProductIDintProductNamenvar(40)Unit(2)UnitPricemoney)表中的數據如圖1:圖表圖1中可以看出,產品Chang和Tofu的記錄在產品信息表中存在重復?,F在要刪除這些重復的記錄,只保留其中的一條。步驟如下:第一板斧第一板斧——建立一張具有相同結構的臨時表建立一張具有相同結構的臨時表此時SQLServ

4、er會返回如下提示:服務器:消息3604,級別16,狀態(tài)1,行1已忽略重復的鍵。它表明在產品信息臨時表Products_temp中不會有重復的行出現。第四板斧第四板斧——將新的數據導入原表將新的數據導入原表將原產品信息表Products清空,并將臨時表Products_temp中數據導入,最后刪除臨時表Products_temp。ProductsintoProductsfromProducts_tempProducts_temp這樣就完

5、成了對表中重復記錄的刪除。無論表有多大,它的執(zhí)行速度都是相當快的,而且因為幾乎不用寫語句,所以它也是很安全的。小提示小提示:上述方法中刪除重復記錄取決于創(chuàng)建唯一索引時選擇的字段,在實際的操作過程中讀者務必首先確認創(chuàng)建的唯一索引字段是否正確,以免將有用的數據刪除。ACLEACLE在acle中,可以通過唯一rowid實現刪除重復記錄;還可以建臨時表來實現...這個只提到其中的幾種簡單實用的方法,希望可以和大家分享(以表employee為例)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論