--1,如果是对于个别字段: SELECT * from t, (select m,n from t b group by m,n having count(*)> 1) t1 where t.m=t1.m and t.n=t1.n --2,对于所有字段: --转移不重复的数据到临时表 select distinct * into #tmp from tb /* 删除原表所有数据,个人认为,此处用truncate table ,而不用drop table,原因是如果用drop table之后,在重新创建该表时,得到的表中的有关字段的一些信息可能会和以前的不一样。 */ truncate table tb --插入不重复数据到原表 insert tb select * from #tmp --删除临时表 drop table *tmp