在SQL Server中快速删除重复记录

外地盲流真无耻

外地盲流真无耻

2016-01-29 14:54

在SQL Server中快速删除重复记录,在SQL Server中快速删除重复记录
开发人员的噩梦——删除重复记录

  想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地会碰到由于表中存在重复的记录而导致查询和统计结果不准确。解决该问题的办法就是将这些重复的记录删除,只保留其中的一条。

  在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录。因为这种方法需要对整个表进行遍历,所以对于表中的记录数不是很大的时候还是可行的,如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间。

  四板斧——轻松消除重复记录

  殊不知在SQL Server中有一种更为简单的方法,它不需要用游标,只要写一句简单插入语句就能实现删除重复记录的功能。为了能清楚地表述,我们首先假设存在一个产品信息表Products,其表结构如下:

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


  表中的数据如图1:

  图1中可以看出,产品Chang和Tofu的记录在产品信息表中存在重复。现在要删除这些重复的记录,只保留其中的一条。步骤如下:

  第一板斧——建立一张具有相同结构的临时表

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/mysql/)

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/mysql/)


  第二板斧——为该表加上索引,并使其忽略重复的值

  方法是在企业管理器中找到上面建立的临时表Products _temp,单击鼠标右键,选择所有任务,选择管理索引,选择新建。如图2所示。

  按照图2中圈出来的地方设置索引选项。

展开更多 50%)
分享

猜你喜欢

在SQL Server中快速删除重复记录

MySQL mysql数据库
在SQL Server中快速删除重复记录

有关重复记录的删除(SQL SERVER)

ASP
有关重复记录的删除(SQL SERVER)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在SQL中删除重复记录(多种方法)

SQLServer
在SQL中删除重复记录(多种方法)

在Excel2007中快速删除重复记录

办公软件
在Excel2007中快速删除重复记录

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server2008中删除重复记录的方法分享

编程语言 网络编程
SQL Server2008中删除重复记录的方法分享

删除重复记录

编程语言 网络编程
删除重复记录

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

保护Access 2000数据库的安全

保护Access 2000数据库的安全

《秦时明月》攻略之小R的极品阵容推荐

《秦时明月》攻略之小R的极品阵容推荐
下拉加载更多内容 ↓