Syntax:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Beispiel:
ALTER TABLE SomeTable
ADD SomeCol Bit NULL --Or NOT NULL.
CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated.
DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.
Anmerkungen:
Optionaler Beschränkungsname:
Wenn Sie CONSTRAINT D_SomeTable_SomeCol
weglassen dann generiert SQL Server automatisch
einen Default-Contraint mit einem komischen Namen wie:DF__SomeTa__SomeC__4FB7FEF6
Optionale With-Values-Anweisung:
Der WITH VALUES
wird nur benötigt, wenn Ihre Spalte nullfähig ist
und Sie möchten, dass der Standardwert für vorhandene Datensätze verwendet wird.
Wenn Ihre Spalte NOT NULL
ist , dann wird automatisch der Standardwert
für alle vorhandenen Datensätze verwendet, unabhängig davon, ob Sie WITH VALUES
angeben oder nicht.
So funktionieren Inserts mit einer Default-Constraint:
Wenn Sie einen Datensatz in SomeTable
einfügen und nicht Geben Sie SomeCol
an 's Wert, dann wird er standardmäßig auf 0
gesetzt .
Wenn Sie einen Datensatz einfügen und Geben Sie SomeCol
an als NULL
(und Ihre Spalte Nullen zulässt),
dann wird die Default-Constraint nicht verwendet werden und NULL
wird als Wert eingefügt.
Die Notizen basieren auf dem großartigen Feedback aller unten.
Besonderer Dank geht an:
@Yatrix, @WalterStabosz, @YahooSerious und @StackMan für ihre Kommentare.