DBAtlas · Atlas für Datenbankbetrieb

2627: Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (Verletzung des PRIMARY-KEY-/UNIQUE-KEY-Constraints; doppelter Schlüssel nicht einfügbar)

SQL Server

Was bedeutet das?

Du hast versucht, einen Wert einzufügen oder zu aktualisieren, der in den durch einen PRIMARY-KEY- oder UNIQUE-Constraint geschützten Spalte(n) bereits vorhanden ist. Doppelte Schlüssel werden nicht akzeptiert.

Ursache

Zweites Einfügen desselben eindeutigen Werts, ein UPDATE, das mit einem vorhandenen Wert kollidiert, eine fehlende Eindeutigkeitsprüfung oder zwei parallele Requests, die dieselbe Zeile erzeugen.

Lösung

Prüfe vor dem Einfügen, ob die Zeile existiert, oder verwende MERGE / IF NOT EXISTS. Wende für idempotente Inserts das Muster "INSERT ... WHERE NOT EXISTS" an. Fange den Fehler ab und gib eine aussagekräftige Meldung zurück. Brauchst du tatsächlich doppelte Daten, überprüfe den Constraint. Verwende IDENTITY oder SEQUENCE, um Kollisionen beim Erzeugen von Schlüsseln zu vermeiden.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank