Синтаксис:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Пример:
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.
Примечания:
Имя необязательного ограничения:
Если вы не укажете CONSTRAINT D_SomeTable_SomeCol
, SQL Server автоматически сгенерирует
ограничение по умолчанию с забавным именем, например: DF__SomeTa__SomeC__4FB7FEF6
Необязательный оператор с дополнительными значениями:
WITH VALUES
требуется только в том случае, если ваш столбец обнуляем.
и вы хотите использовать значение по умолчанию для существующих записей.
Если ваш столбец NOT NULL
, он будет автоматически использовать значение по умолчанию
для всех существующих записей, независимо от того, указали ли вы WITH VALUES
или нет.
Как вставки работают с ограничением по умолчанию:
Если вы вставите запись в SomeTable
и выполните , а не Укажите значение SomeCol
, тогда по умолчанию оно будет 0
.
Если вы вставите запись и Укажите значение SomeCol
как NULL
(и ваш столбец допускает пустые значения),
тогда будет использоваться ограничение по умолчанию , а не , и в качестве значения будет вставлено NULL
.
Примечания были основаны на замечательных отзывах всех ниже.
Особая благодарность:
@Yatrix, @WalterStabosz, @YahooSerious и @StackMan за их комментарии.