当前位置: 首页 > 图文教程 > 数据库 > MYSQL > 在SQL Server中快速删除重复记录

MYSQL
MySQL菜鸟入门指南
mysql常识和基本操作
MySQL数据库函数详解(1)
MySQL数据库函数详解(2)
MySQL数据库函数详解(3)
MySQL数据库函数详解(4)
MySQL数据库函数详解(5)
mysql使用指南(上)
MYSQL使用指南(下)
MySQL实现表中取出随机数据
从MySQL导出XLS数据库工具(跨平台)
禁止Mysql默认端口访问Internet
MYSQL数据同步备份复制
MySQL数据库和备份与恢复
使用MySql ODBC进行MYsql和MSsql的数据转换
MySQL数据库格式轻松转
使用MySQL内建复制功能来最佳化可用性
MySQL中如何实现Top N及M至N段的记录查询?
MySQL丢了root密码怎么办?
MySQL 4.1 的安装和升级

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 60 ::
收藏到网摘: n/a

开发人员的噩梦——删除重复记录

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

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

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

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

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


  表中的数据如图1:

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

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

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


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

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

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