萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 電腦入門

SQL Server 資料表重複主鍵資料批次刪除標準流程

當資料表存在多組重複主鍵值時,逐筆刪除效率極低。標準流程利用暫存表分組統計、去重、刪除、回寫,確保資料完整性。

標準刪除流程

  1. 統計重複群組:GROUP BY 查詢確認重複 PK 群組數與每組筆數。
  2. 重複鍵值存入暫存表 holdkey:
    SELECT col1, col2, col3=count(*) INTO holdkey FROM t1 GROUP BY col1, col2 HAVING count(*) > 1
    
  3. 重複資料列存入 holddups 去重:
    SELECT DISTINCT t1.* INTO holddups FROM t1, holdkey WHERE t1.col1=holdkey.col1 AND t1.col2=holdkey.col2
    
  4. 驗證 holddups 唯一性:若仍有鍵重複但列不同,需人工決定保留哪筆(捨棄或產生新鍵值)。
  5. 刪除原表重複列:
    DELETE t1 FROM t1, holdkey WHERE t1.col1=holdkey.col1 AND t1.col2=holdkey.col2
    
  6. 將唯一資料寫回原表:
    INSERT t1 SELECT * FROM holddups
    

此流程適用於大量重複主鍵資料的批次清理,確保零資料遺失風險。

copyright © 萬盛學電腦網 all rights reserved