1768: Der '%1!'-Fremdschlüssel verweist auf das '%2!'-Objekt, das keine Benutzertabelle ist.
Fehlermeldung:
Meldung 1768, Ebene 16, Status 0, Zeile 1
Der '%1!'-Fremdschlüssel verweist auf das '%2!'-Objekt, das keine Benutzertabelle ist.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht für eine Tabelle eine FOREIGN KEY Einschränkung zu erstellen, die auf ein Datenbankobjekt verweist, welches nicht vom Typ Tabelle ist.
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. Das Objekt, auf welches in der FOREIGN KEY Einschränkung verwiesen wird, muss eine Tabelle sein.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE tempdb;
GO
IF OBJECT_ID('dbo.MyDate', 'function') > 0
DROP FUNCTION dbo.MyDate
GO
CREATE FUNCTION dbo.MyDate()
RETURNS DATETIME
WITH EXECUTE AS CALLER
AS
BEGIN
RETURN (GETDATE())
END;
GO
IF OBJECT_ID('tempdb..t') > 0
DROP TABLE t
GO
CREATE TABLE t
(
c1 INT
CONSTRAINT FK_t_t1_c1 FOREIGN KEY REFERENCES MyDate(c1)
)
GO
Anmerkungen:
Im obigen Beispiel wird versucht, eine FOREIGN KEY Einschränkung für die Tabelle t mit der benutzerdefinierten Funktion MyDate zu erstellen. Da dies keine Tabelle ist, wird der Fehler ausgelöst.