1779: Für die '%1!'-Tabelle ist bereits ein Primärschlüssel definiert.
Fehlermeldung:
Meldung 1779, Ebene 16, Status 0, Zeile 1
Für die '%1!'-Tabelle ist bereits ein Primärschlüssel definiert.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung taucht auf, wenn versucht wird, für eine Tabelle für die bereits eine Primärschlüssel (PK) Einschränkung existiert, eine zweite PK Einschränkung zu erstellen.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. In diesem Fall läßt sich der Fehler nur dadurch vermeiden, daß entweder die bereits bestehende PK Einschränkung modifiziert wird, um evtl. geänderten Anforderungen zu genügen oder auf die 2.te PK Einschränkung verzichtet wird.
Versionen:
Alle Versionen von SQL Server
Beispiel(e):
USE tempDB
GO
CREATE TABLE #t
(
c1 INT PRIMARY KEY
, c2 INT
)
GO
ALTER TABLE #t
ADD CONSTRAINT PK_t PRIMARY KEY (c2)
GO
DROP TABLE #t
Anmerkungen:
Das obige Beispiel erstellt eine temporäre Tabelle #t. Im CREATE TABLE Block wird ebenfalls eine PK Einschränkung für die Spalte c1 definiert. Weiter unten wird durch das ALTER TABLE Statement versucht, eine weitere PK Einschränkung für die Spalte c2 zu definieren. Dies löst den Fehler aus. Mögliche Lösungen wären eine zusammengesetzte PK Einschränkung für (c1, c2), der Wechsel der PK Einschränkung von c1 auf c2 oder der Verzicht auf die PK Einschränkung für c2. Stattdessen könnte, zum Beispiel, eine UNIQUE Einschränkung oder ein UNIQUE Index für c2 erstellt werden.