1786: Die '%1!.%2!'-Spalte oder die verweisende '%3!.%4!'-Spalte im '%5!'-Fremdschlüssel
Fehlermeldung:
Meldung 1786, Ebene 16, Status 0, Zeile 1
Die '%1!.%2!'-Spalte oder die verweisende '%3!.%4!'-Spalte im '%5!'-Fremdschlüssel ist eine timestamp-Spalte. Dieser Datentyp kann nicht zusammen mit kaskadierenden Einschränkungen für die referenzielle Integrität verwendet werden.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht für eine FOREIGN KEY Spalte vom Typ TIMESTAMP referentielle Integritätsaktionen 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. Das Statement kann so nicht ausgeführt werden. Für Spalten diesen Datentypes können keine referentiellen Integritätsaktionen erstellt werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE tempdb;
GO
IF OBJECT_ID('tempdb..t1') > 0
DROP TABLE t1
GO
IF OBJECT_ID('tempdb..t') > 0
DROP TABLE t
GO
CREATE TABLE t
(
c1 TIMESTAMP PRIMARY KEY
)
GO
CREATE TABLE t1
(
c1 TIMESTAMP
CONSTRAINT FK_t_t1_c1 FOREIGN KEY REFERENCES t(c1)
ON UPDATE CASCADE
)
Anmerkungen:
Im obigen Beispiel wird versucht, als referentielle Integritätsaktion ON UPDATE CASCADE anzugeben. Da der Datentypt der zugrundenliegenden Spalte TIMESTAMP ist, wird der Fehler ausgelöst.