332: Die '%1!'-Zieltabelle der OUTPUT INTO-Klausel darf sich auf keiner Seite einer (Primärschlüssel-Fremdschlüssel-)Beziehung
Fehlermeldung:
Meldung 332, Ebene 16, Status 1, Zeile 6
Die '%1!'-Zieltabelle der OUTPUT INTO-Klausel darf sich auf keiner Seite einer (Primärschlüssel-Fremdschlüssel-)Beziehung befinden. Die Verweiseinschränkung '%2!' wurde gefunden.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht eine OUTPUT Klausel zu verwenden, die Zieltabelle aber auf einer Seite einer PK-FK Beziehung auftaucht.
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. Die Zieltabelle einer OUTPUT Klausel darf auf keiner Seite einer PK-FK Beziehung auftauchen.
Versionen:
Diese Fehlermeldung wurde mit SQL Server 2005 eingeführt.
Beispiele:
IF OBJECT_ID ('dbo.t') IS NOT NULL
DROP TABLE dbo.t;
IF OBJECT_ID ('dbo.t2') IS NOT NULL
DROP TABLE dbo.t2;
IF OBJECT_ID ('dbo.t3') IS NOT NULL
DROP TABLE dbo.t3;
CREATE TABLE dbo.t
(c1 int,
s1 varchar(20));
GO
CREATE TABLE dbo.t2
(c1 int PRIMARY KEY,
s1 varchar(20));
GO
CREATE TABLE dbo.t3
(c1 int
CONSTRAINT FK_t3_t2 FOREIGN KEY (c1) REFERENCES dbo.t2(c1));
INSERT INTO dbo.t
OUTPUT
inserted.c1,
inserted.s1
INTO
dbo.t2
SELECT 1, 'a';
Anmerkungen:
Im obigen Beispiel wird versucht, über die OUTPUT Klausel Daten in die Tabelle dbo.t2 einzufügen. Da diese Tabelle aber auf der PK Seite einer PK-FK Beziehung auftaucht, wird der Fehler ausgelöst.