333: Für die '%1!'-Zieltabelle der OUTPUT INTO-Klausel dürfen keine CHECK-Einschränkungen und keine Regeln aktiviert sein. Die C
Fehlermeldung:
Meldung 333, Ebene 16, Status 1, Zeile 3
Für die '%1!'-Zieltabelle der OUTPUT INTO-Klausel dürfen keine CHECK-Einschränkungen und keine Regeln aktiviert sein. Die CHECK-Einschränkung oder Regel '%2!' wurde gefunden.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht eine OUTPUT Klausel zu verwenden, die Zieltabelle aber eine CHECK Einschränkung oder Regel aufweist.
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 weder eine CHECK Einschränkung noch eine Regel aufweisen.
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;
CREATE TABLE dbo.t
(c1 int,
s1 varchar(20));
GO
CREATE TABLE dbo.t2
(c1 int,
s1 varchar(20)
CONSTRAINT CHK_t2_s1 CHECK (s1 <> ''));
GO
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 eine CHECK Einschränkung aufweist, wird der Fehler ausgelöst.