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

现在正在做一个项目,在测试的时候重复添加到数据库表中很多数据,现在想要重新整理一下数据库,就是把重复的数据删除(当然不是全部删除,而是重复的数据至少要保留一条),该怎么做... 现在正在做一个项目,在测试的时候重复添加到数据库表中很多数据,现在想要重新整理一下数据库,就是把重复的数据删除(当然不是全部删除,而是重复的数据至少要保留一条),该怎么做?
因为有多个表都需要重新整理,无法将表结构都写出来,请大家帮帮忙
唯一的共同点就是,这几张表中都有ID字段是自动增长列,也是主键
展开
 我来答
众口说车
2012-08-18 · TA获得超过2323个赞
知道大有可为答主
回答量:3503
采纳率:50%
帮助的人:1575万
展开全部
用select Top 1 选择到临时表,清空当前表,再重新初始化自增因子,然后写回!
更多追问追答
追问
你的意思是再重新添加新的数据吗?还是怎样
追答
比如,你的原始表有100条数据,其中重复的有若干条 表名为SOURCE
你就 Select Top 1 * FROM SOURCE INTO tempdb
DELETE * from Source
into into source select * from Tempdb..
大体就这样吧……。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
极品老土豆
2012-08-18 · TA获得超过138个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:89.7万
展开全部
select 标识列1....等所有你想保存的列 from table1 into tempTable
group by 标识列1..等所有你想保存的列
having count (标识列)>1
--ID除外

delete from table1 where 标识列 in (select 标识列 from tempTable)

insert into table1 (所有列) select 所有列 from tempTable Group by 所有列
更多追问追答
追问
这个插入不了值啊

我在sql中执行了,报这个错,你帮忙看一下,谢谢了!
(0 行受影响)
消息 544,级别 16,状态 1,第 3 行
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'stu' 中的标识列插入显式值。
追答
不要把ID也加入 标示行,或者,把IDENTITY_INSERT 设置为 ON 时
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f81baeffd
2012-08-20 · 超过30用户采纳过TA的回答
知道答主
回答量:133
采纳率:100%
帮助的人:116万
展开全部
select distinct * into 新表 from 表
delete from 表
insert into 表 select * from 新表
drop table 新表
更多追问追答
追问
这样执行出来没效果啊,还是全部的值插入新表
追答

额,你 那些相同的数据 是 每个字段的值都相同么 ,

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式