Hinzufügen einer Spalte mit einem Standardwert zu einer bestehenden Tabelle in SQL Server
In SQL Server, Um eine Spalte mit einem Standardwert zu einer bestehenden Tabelle hinzuzufügen, verwenden Sie ALTER
Tabelle ADD
Spaltenname mit NULL/NOT NULL
Einschränkung mit DEFAULT
Wert.
Die folgende SQL-Server-Abfragesyntax kann verwendet werden, um eine Spalte mit dem Standardwert in die vorhandene Tabelle einzufügen.
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Lassen Sie uns ein Beispiel durchgehen, um es besser zu verstehen.
Hinzufügen einer nicht-nullbaren Spalte mit Standardwert für vorhandene Datensätze
Nehmen wir eine Tabelle Employee
im SQL Server, und wenn wir die Spalte Mindestlohn mit dem Standardwert 1000USD
hinzufügen möchten, verwenden Sie die folgende Abfrage.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO
Die obige Abfrage fügt eine neue Spalte MINIMUM_WAGE
in der Tabelle Employee
hinzu und füllt die Spalte in den vorhandenen Zeilen mit dem Standardwert, d. h. 1000
.
Weil wir die Einschränkung NOT NULL
hinzugefügt haben.
Wenn Sie die Einschränkung NOT NULL
nicht hinzufügen, werden alle vorhandenen Zeilen NULL
sein und der Wert DEFAULT
wird keine Auswirkungen haben.
ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO
Alle MINIMUM_WAGE
Spaltenwerte werden NULL
sein.
Sie müssen den Wert DEFAULT
hinzufügen, wenn Sie die Einschränkung NOT NULL
hinzufügen, wenn die Tabelle nicht leer ist.
Wenn zum Beispiel die Tabelle Employee
nicht leer ist und Sie eine neue Spalte mit der Einschränkung NOT NULL
hinzufügen, wird ein Fehler ausgegeben.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO
Die obige Sql-Server-Abfrage wird den unten stehenden Fehler beim Hinzufügen einer neuen Spalte zu der vorhandenen Tabelle auslösen.
ALTER TABLE only allows columns to be added that can contain nulls, or have a DEFAULT definition specified, or the column being added is an identity or timestamp column, or alternatively if none of the previous conditions are satisfied the table must be empty to allow addition of this column. Column 'MINIMUM_WAGE' cannot be added to non-empty table 'Employee' because it does not satisfy these conditions.
Wenn die Tabelle Employee
leer ist.
Die obige Sql-Server-Abfrage fügt eine neue Spalte ohne Probleme hinzu.
Hinzufügen einer nullbaren Spalte mit Standardwert für vorhandene Datensätze
Wenn Sie eine löschbare Spalte mit einem Standardwert für bestehende Datensätze hinzufügen möchten, müssen Sie WITH VALUES
in der SQL-Anweisung verwenden.
ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES
Die obige Abfrage fügt der Sql-Server-Tabelle eine löschbare Spalte mit dem Standardwert für vorhandene Datensätze hinzu.
Wenn dieses Tutorial haben wir gelernt, eine Spalte sowohl nullable und nicht nullable Spalten in die Sql-Server-Tabelle mit Standardwert für alle vorhandenen Datensätze hinzufügen.