8140: In der %1!-Einschränkung auf Spaltenebene ist mehr als ein Schlüssel angegeben
Fehlermeldung:
Meldung 8140, Ebene 16, Status 0, Zeile 1
In der %1!-Einschränkung auf Spaltenebene ist mehr als ein Schlüssel angegeben, '%2!'-Tabelle.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht per EXECUTE eine Variable auszuführen, die nicht einem der in der Fehlermeldung genannten Datentypen entspricht.
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. Das Statement kann so nicht ausgeführt werden. Einschränkungen auf Spaltenebene müssen in den beteiligten Tabellen die gleiche Anzahl von Spalten ansprechen.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE tempdb;
IF OBJECT_ID('t', 'table') > 0
DROP TABLE t
GO
IF OBJECT_ID('t1', 'table') > 0
DROP TABLE t1
CREATE TABLE t
(
c1 INT,
c2 INT
)
GO
CREATE TABLE t1
(
c2 INT
CONSTRAINT FK_t1_t FOREIGN KEY REFERENCES t(c1, c2)
)
Anmerkungen:
Im obigen Beispiel wird versucht eine Fremdschlüsseleinschränkung zwischen den Tabellen t und t1 zu erstellen. In der Tabelle t sind zwei Spalten beteiligt, in der Tabelle t1 hingegen nur eine. Dies löst den Fehler aus.