| 
 删除重复数据 方法一     declare @max integer,@id integer   declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1   open cur_rows   fetch cur_rows into @id,@max   while @@fetch_status=0   begin   select @max = @max -1   set rowcount @max   delete from 表名 where 主字段 = @id   fetch cur_rows into @id,@max   end   close cur_rows   set rowcount 0
 方法二   有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。   1、对于第一种重复,比较容易解决,使用     select distinct * from tableName  
    就可以得到无重复记录的结果集。
   如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除     select distinct * into #Tmp from tableName   drop table tableName   select * into tableName from #Tmp   drop table #Tmp  
   发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。  |