Sqlserver 2000 数据库表中删除重复记录(仅保留一条)
? 以前在面试中经常被问到怎么删除数据库中重复记录,但是因为缺乏真实场景,即使在网上看到相关信息也是看的云里雾里,今天在工作中就遇到相同情况,经过网上查找相关材料,把自己解决方式整理分享给大家 描述: 表名: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_table1列colu_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、????????????? 操作结束,为防止操作失误,请提前备份表数据 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |