2016-03-29 11 views
0

Wie ist das möglich? Ich habe eine Tabelle Kontakte, mit einem Feld contactId, die Autonummertyp ist. Ich lief die folgende Abfrage darauf:Auto-Nummer Feld hat Duplikate

SELECT ContactId 
FROM Contacts 
GROUP BY contactId 
HAVING Count(ContactId) > 1 

Und ich habe 9 Datensätze.

+1

Löschen Sie die Zeilen, die doppelte Werte enthalten, und erstellen Sie dann 'ContactId' den Primärschlüssel. Dann sind keine Dubletten mehr möglich. – HansUp

+4

Mehrere Gründe: http://allenbrowne.com/ser-40.html –

Antwort

2

Es ist möglich, weil Sie einen beliebigen Wert in Autonumber Feld mit INSERT SQL einfügen können. Nach diesem Access generiert nächste Nummer = zuletzt eingefügt + 1, aber nicht = maximale Anzahl + 1. Um dies zu vermeiden, fügen Sie primären oder eindeutigen Schlüssel zu Auto-Nummer Feld hinzu.

+0

Wie füge ich einen Primärschlüssel hinzu? Ich dachte, es ist ein Primärschlüssel, wenn man es zur automatischen Nummerierung macht. – MJH

+0

Nein, das Hinzufügen eines neuen Felds autonumber macht es nicht zum Primärschlüssel. Es passiert, wenn Sie die Tabelle mit dem Assistenten erstellen. Im Tabellendesign wählen Sie einfach Ihr Feld aus und klicken auf Design-> Primärschlüssel in der Multifunktionsleiste –

+0

Ich kann jetzt keine neue Tabelle erstellen. Wie kann ich sehen, ob ContactId ein Primärschlüssel ist oder nicht? In der Entwurfsansicht ist der allgemeine, neue Wert ein Inkrement. bedeutet das nicht, dass es der Primärschlüssel ist? wenn nicht, wie ändere ich es? – MJH