Sintaxe:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Exemplo:
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.
Observações:
Nome da restrição opcional:
Se você deixar de fora
CONSTRAINT D_SomeTable_SomeCol
então o SQL Server irá gerar automaticamenteuma Default-Contraint com um nome engraçado como:
DF__SomeTa__SomeC__4FB7FEF6
Declaração opcional com valores:
O
WITH VALUES
só é necessário quando sua coluna é anulávele você deseja que o valor padrão seja usado para registros existentes.
Se sua coluna for
NOT NULL
, ele usará automaticamente o valor padrãopara todos os registros existentes, independentemente de você especificar
WITH VALUES
ou não. Como as inserções funcionam com uma restrição padrão:
Se você inserir um registro em
SomeTable
e não Especifique SomeCol
valor de 's, então ele será padrão para 0
.Se você inserir um registro e Especifique
SomeCol
valor de 's como NULL
(e sua coluna permite valores nulos),então a Default-Constraint não ser usado e
NULL
será inserido como o Valor.As notas foram baseadas no ótimo feedback de todos abaixo.
Agradecimentos especiais a:
@Yatrix, @WalterStabosz, @YahooSerious e @StackMan por seus comentários.