*******************************************
SQLServer2000删除重复数据(总结)******************************************* 一、具有主键的情况 I.具有唯一性的字段id(为唯一主键) delete 用户表 where id not in ( select max (id) from 用户表 group by col1,col2,col3... )
(找出相同记录)
select * from 用户表 where col1 + ' , ' + col2 + ' , ' ...col5 in ( select max (col1 + ' , ' + col2 + ' , ' ...col5) from 用户表 group by col1,col2,col3,col4 having count ( * ) > 1 )
select * from 用户表 where exists ( select 1 from 用户表 x where 用户表.col1 = x.col1 and 用户表.col2 = x.col2 group by x.col1,x.col2 having count ( * ) > 1 )
select * into #aa from 用户表 group by id1,id2,.... delete 用户表 insert into 用户表 select * from #aa
select identity ( int , 1 , 1 ) as id, * into # temp from 用户表 delete # temp where id not in ( select max (id) from # group by col1,col2,col3... ) delete 用户表 ta inset into ta(...) select ..... from # temp
II.用改变表结构(加一个唯一字段)来实现
alter 用户表 add newfield int identity ( 1 , 1 ) delete 用户表 where newfield not in ( select min (newfield) from 用户表 group by 除newfield外的所有字段 ) alter 用户表 drop column newfield