2014-02-10 165 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刪除重複。刪除原始表中的所有行,然後插入唯一的行。