2014-02-10 129 views
0

MS Access数据库已损坏,并且在一个表中有几行重复。他们是绝对相同,并且重复之间,甚至主键之间没有任何唯一字段。因此,修复数据库后,主键从此表中重新设置。 现在我只知道被复制的行:MS Access数据库中的重复行

select * from tablename 
where id in(
select id from tablename 
group by id 
having count (*) > 1) 

要指定主键我必须删除一式两份的一个,但不知道怎么办。你可以这样做

+0

搜索SO:问一个gazillion次之前。 GBN有一个很好的答案,我似乎记得... –

+0

我看到了这个问题,但据我了解,每个副本都有一个不同的唯一标识符。在我的情况下,没有这样的领域。 –

回答

1

一种方式是使用临时表:

select distinct t.* 
into TempTABLE 
from tablename t; 

delete from tablename; 

insert into tablename 
    select * 
    from TempTable; 

也就是说,使用distinct删除重复。删除原始表中的所有行,然后插入唯一的行。