4901: Mit ALTER TABLE können nur Spalten hinzugefügt werden, die NULL-Werte enthalten können.
Fehlermeldung:
Meldung 4901, Ebene 16, Status 1, Zeile 1
Mit ALTER TABLE können nur Spalten hinzugefügt werden, die NULL-Werte enthalten können oder eine DEFAULT-Definition aufweisen. Oder die hinzugefügte Spalte ist eine identity- oder timestamp-Spalte. Falls keine der genannten Bedingungen erfüllt sind, muss die Tabelle leer sein, damit diese Spalte hinzugefügt werden kann. Die '%1!'-Spalte kann nicht der nicht leeren '%2!'-Tabelle hinzugefügt werden, da sie diese Bedingungen nicht erfüllt.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht, per ALTER TABLE ADD eine Spalte mit der Eigenschaft NOT NULL hinzuzufügen, für die keine DEFAULT Einschränkung definiert wurde.
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 neue Spalte muss entweder mit der NULL Eigenschaft erstellt werden, so daß sie auch NULL Marker enthalten kann, oder es muss eine DEFAULT Einschränkung für die Spalte bei der Erstellung angegeben werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE tempdb;
GO
IF OBJECT_ID('tempdb..#t') > 0
DROP TABLE #t
GO
CREATE TABLE #t
(
id INT
)
GO
INSERT INTO #t SELECT 1
GO
ALTER TABLE #t ADD c2 INT NOT NULL
Anmerkungen:
Im obigen Beispiel wird versucht, die Spalte c2 zur Tabelle #t hinzuzufügen. c2 ist als NOT NULL deklariert, es wurde aber keine DEFAULT Einschränkung angegeben. Da bereits Daten in der Tabelle existieren, wird der Fehler ausgelöst.