建立帶有 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 使唯一索引在遇到重複鍵值時,只發出警告並忽略該列,不中斷整批插入。此選項在 SQL Server 2008 後標記為過時,新專案建議改用 MERGE 或 ROW_NUMBER() 過濾重複。