当前位置:数据库 > SQLServer >>

sqlserver 2005怎样删除数据表中重复的数据

现在正在做一个项目,在测试的时候重复添加到数据库表中很多数据,现在想要重新整理一下数据库,就是把重复的数据删除(当然不是全部删除,而是重复的数据至少要保留一条),该怎么做? 因为有多个表都需要重新整理,无法将表结构都写出来,请大家帮帮忙 唯一的共同点就是,这几张表中都有ID字段是自动增长列,也是主键
追问:这样执行出来没效果啊,还是全部的值插入新表恩,我知道这种方法了。
不过这种方法是全部的字段相同才可以的,而我的ID字段是自动增长列,不可能相同的这个插入不了值啊
 
我在sql中执行了,报这个错,你帮忙看一下,谢谢了!
(0 行受影响)
消息 544,级别 16,状态 1,第 3 行
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'stu' 中的标识列插入显式值。1>insert into stu (name) select name from stus Group by name就算是我这样写sql语句,也差不进去,虽然不报错,但是还是显示受影响行数为0
2>“把IDENTITY_INSERT 设置为 ON 时"  你说的这句话,应该在哪里设置IDENTITY_INSERT还是不对啊,想你写的这样是只能插入name的值,id的值就插不进去。当我去添加列名id的时候,就又没有效果了你的意思是再重新添加新的数据吗?还是怎样这个sql语句都是错的,
 
修改了几次也没有成功,到底是该怎么做啊?
答案:select distinct *  into 新表 from 表
delete from 表
insert into 表 select * from 新表
drop table 新表
其他:用select Top 1 选择到临时表,清空当前表,再重新初始化自增因子,然后写回!

上一个:关于sqlServer2008的查询语句
下一个:求sqlserver中sql语句

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,