当建一个与外部表无任何的关系的表(没主键和标识列),表的行是可以重复的,但如何删除重复行?还有就是如果此表有标识列,insert同样的行再删除,然后再insert,发现标识列是从刚刚删除的行的最后一行标识列的值开始了,这又是怎么回事?
自增的字段就是这样的,就好像对于这个表有个公共的计数器,一直向前。
删除肯定是要提供一个where条件的,最坏的情况,就是表中所有的字段都作为条件
可以创建一个临时表,查询出不重复的数据copy的临时表,然后干掉原表数据在把数据重临时表copy回来
select distinct * into temp from tablename
delete from tablename
insert into tablename select * from temp
或者用
delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)