首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

利用 IGNORE_DUP_KEY 索引快速刪除重複列

     編輯:關於SqlServer

建立帶有 IGNORE_DUP_KEY 選項的唯一索引,插入資料時自動忽略重複鍵值,以此達成去重目的。

完整腳本

CREATE TABLE #MATCH_COLS (
    ROW_NUM INT,
    COL2 CHAR(1),
    COL3 CHAR(1)
);
GO

CREATE UNIQUE INDEX #MATCH_COL2_IDX
ON #MATCH_COLS(COL2, COL3)
WITH IGNORE_DUP_KEY;
GO

-- 先檢查原表重複情況
SELECT 'COUNT(*)' = COUNT(*), COL2, COL3
FROM MATCH_COLS
GROUP BY COL2, COL3;

-- 插入去重
INSERT #MATCH_COLS
SELECT * FROM MATCH_COLS;

-- 驗證結果
SELECT 'COUNT(*)' = COUNT(*), COL2, COL3
FROM #MATCH_COLS
GROUP BY COL2, COL3;

原理

  • IGNORE_DUP_KEY 使唯一索引在遇到重複鍵值時,只發出警告並忽略該列,不中斷整批插入。
  • 適用於一次性資料清洗、ETL 階段去重。

注意

此選項在 SQL Server 2008 後標記為過時,新專案建議改用 MERGE 或 ROW_NUMBER() 過濾重複。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved