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

Sqlserver 2000 数据库表中删除重复记录(仅保留一条)

发布时间:2020-12-12 15:40:58 所属栏目:MsSql教程 来源:网络整理
导读:? 以前在面试中经常被问到怎么删除数据库中重复记录,但是因为缺乏真实场景,即使在网上看到相关信息也是看的云里雾里,今天在工作中就遇到相同情况,经过网上查找相关材料,把自己解决方式整理分享给大家 描述: 表名: Table1 字段 ? colu_id,colu_1,colu_

?

以前在面试中经常被问到怎么删除数据库中重复记录,但是因为缺乏真实场景,即使在网上看到相关信息也是看的云里雾里,今天在工作中就遇到相同情况,经过网上查找相关材料,把自己解决方式整理分享给大家

描述:

表名:Table1

字段? colu_id,colu_1,colu_2,colu3

说明:表中没有主键,部分记录中存在重复值,但并不是完全意义上的重复,只是其中某字段重复,这里是colu_id有重复

解决方案:

1、????????????? 建一张临时表存储,表结构和Table1一致,因为我的table1 字段值太多,我直接采用下面的语句复制Table1

Select * into temp_table1 from table1

?

2、????????????? 清空临时表数据

Delete? from temp_table1

?

3、????????????? 为该表加上索引,并使其忽略重复的值

方法是在企业管理器中找到刚才建的临时表temp_table1,鼠标右击——所有任务——管理索引,选择新建,弹出如下对话框:

?

?

?

按照上图红色标记设置选项。

注意:新建索引要勾选现在是重复记录,但是准备删除的字段,比如我在这里选择的是colu_id

?

1、????????????? copy? table1表数据到temp_table1中,此时查询器会如下提示:

服务器: 消息 3604,级别 16,状态 1,行 1 已忽略重复的键

此时临时表temp_table1colu_id列中已经没有重复记录

?

2、????????????? 将临时表(temp_teable1)数据拷贝到原来的表(table1)中

删除table1中数据: delete from table1

将临时表(temp_table1)数据插入到(table1)中:

Insert into table1 select * from temp_table1

???

3、????????????? 删除临时表:drop table temp_table1

4、????????????? 操作结束,为防止操作失误,请提前备份表数据

(编辑:李大同)

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

    推荐文章
      热点阅读