加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver去除重复记录

发布时间:2020-12-12 16:08:31 所属栏目:MsSql教程 来源:网络整理
导读:今天在一个遇到一个问题,就是之前写的一个小软件在数据库中偶尔会出现重复记录的现象,至于出现这种现象的原因,还未查清,不过由于客户的需要,先要帮他打出报表出来,所以需要先把数据库中的重复记录给删除掉,可是总共有三百多条重复记录怎么删除那?这

今天在一个遇到一个问题,就是之前写的一个小软件在数据库中偶尔会出现重复记录的现象,至于出现这种现象的原因,还未查清,不过由于客户的需要,先要帮他打出报表出来,所以需要先把数据库中的重复记录给删除掉,可是总共有三百多条重复记录怎么删除那?这不在网上查了写资料,找到了一种方法,整理如下:

譬如有一张表,字段如下:

Create table Table1
(
  name varchar(20),age  int,address varchar(50)
)
在表Table1中有N条重复记录,去除这N条记录的可通过以下几个步骤:

1.创建一张临时表Table1_temp,字段和Table1一样

Create table Table1_temp
(
  name varchar(20),address varchar(50)
)
2.在Table1_temp上建立索引,并使其忽略重复值

CREATE UNIQUE INDEX idx_t_tmp ON Table1_temp (name) with IGNORE_DUP_KEY
可根据需要更改或增加索引项,请一定要仔细设置这个条件,否则会误删数据

3.从Table1中向Table1_temp中添加数据

insert into Table1_temp Select * from Table1
此时语句会自动过滤重复语句


4.删除Table1中原有的数据,然后将Table1_temp中的数据导入Table1中,并删除临时表Table1_temp

delete from Table1
insert into Table1 Select * from Table1_temp
drop talbe Table1_temp
结束!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读