All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
数据库绑定控件DataGridView属性、方法和事件
通过PHP和Sajax使用Ajax之JavaScript_[PHP教程]
asp.net,生成图片验证码_[Asp.Net教程]
网站的ALEXA排名下降的原因及解决方法_JavaScript技术_编程技术
《Effective,C#》之用委托实现回调_.net资料_编程技术
PHP爱好者简单学习PHP处理表单的方法_php资料_编程技术
asp.net2.0中Cookie对象的应用实例
PHP学习:字符串操作入门教程_php资料_编程技术
详细介绍:Apache+PHP+MySQL配置攻略_php资料_编程技术
Asp.net,2.0,Treeview,无限级无刷新示例_.net资料_编程技术
Reading number is top 10 pictures
So beauty, will let you spray blood6
Beauty is thus produced
China railway shunting skills competition
The hot big eye big breast beauty1
Is said to be a Chinese female artist fame explicit pictures before2
Send some Valentine's day cartoon
Beauty shocked Japan Tokyo motor show model
Ashlynn Brooke a group sexy photo3
漂亮脸蛋魔鬼身材1
The real super beauty1
Download software ranking
Boxer's Top ten classic battle4
JSP+Ajax Web development typical examples
Photoshop 8.0图象编辑软件
WebService在.NET中的实战应用教学视频 → 第2集
美女写真1
Professional killers2 for Android
Boxer's Top ten classic battle2
功夫熊猫2(下集)
WebService在.NET中的实战应用教学视频 → 第5集
Eclipse 4.2.2 For Win64
归海一刀 published in(发表于) 2014/2/1 0:14:49 Edit(编辑)
Sqlserver消除重复记录_[SQL,Server教程]

Sqlserver消除重复记录_[SQL,Server教程]

Sqlserver消除重复记录_[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的记录在产品信息表中存在重复。现在要删除这些重复的记录,只保留其中的一条。步骤如下:

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




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

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

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

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







图2



  第三板斧——拷贝产品信息到临时表



  insert into Products_temp Select * from Products




  此时SQL Server会返回如下提示:

  服务器: 消息 3604,级别 16,状态 1,行 1

  已忽略重复的键。

  它表明在产品信息临时表Products_temp中不会有重复的行出现。

  第四板斧——将新的数据导入原表

  将原产品信息表Products清空,并将临时表Products_temp中数据导入,最后删除临时表Products_temp。



  delete Products
  insert into Products select * from Products_temp
  drop table Products_temp




  这样就完成了对表中重复记录的删除。无论表有多大,它的执行速度都是相当快的,而且因为几乎不用写语句,所以它也是很安全的。

  小提示:上述方法中删除重复记录取决于创建唯一索引时选择的字段,在实际的操作过程中读者务必首先确认创建的唯一索引字段是否正确,以免将有用的数据删除。
来源:赛迪网





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.