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

SQL Server 高效刪除重複資料:四步驟暫存表法

     編輯:關於SqlServer

問題背景

資料表出現重複列會導致查詢與統計不準。傳統游標逐列比對刪除,資料量達百萬列時執行極慢,堪稱噩夢。

四步驟解法:利用 IGNORE_DUP_KEY 索引特性

假設產品資訊表 Products:

CREATE TABLE Products (
    ProductID int,
    ProductName nvarchar(40),
    Unit char(2),
    UnitPrice money
);

圖示資料中 Chang、Tofu 重複。目標:刪除重複,保留一筆。

第一板斧:建立結構相同的暫存表

CREATE TABLE Products_temp (
    ProductID int,
    ProductName nvarchar(40),
    Unit char(2),
    UnitPrice money
);

第二板斧:加入忽略重複鍵值的索引

在企業管理員中對 Products_temp 右鍵 →「所有工作」→「管理索引」→「新增」,於索引選項勾選 忽略重複鍵值(IGNORE_DUP_KEY = ON)。

圖 2:設定忽略重複鍵值

第三板斧:複製資料至暫存表

INSERT INTO Products_temp SELECT * FROM Products;

訊息顯示 已忽略重複的鍵。,暫存表已無重複列。

第四板斧:清空原表並導回新資料

TRUNCATE TABLE Products;
INSERT INTO Products SELECT * FROM Products_temp;
DROP TABLE Products_temp;

完成!此法避免游標遍歷,大幅提升效能,適合大量資料去重複。

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