Syntaxe :
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Exemple :
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.
Remarques :
Nom de la contrainte facultative :
Si vous omettez CONSTRAINT D_SomeTable_SomeCol
alors SQL Server générera automatiquement
un Default-Contraint avec un drôle de nom comme :DF__SomeTa__SomeC__4FB7FEF6
Instruction With-Values facultative :
Le WITH VALUES
n'est nécessaire que lorsque votre colonne est Nullable
et que vous souhaitez que la valeur par défaut soit utilisée pour les enregistrements existants.
Si votre colonne est NOT NULL
, il utilisera automatiquement la valeur par défaut
pour tous les enregistrements existants, que vous spécifiiez WITH VALUES
ou pas.
Comment les inserts fonctionnent avec une contrainte par défaut :
Si vous insérez un enregistrement dans SomeTable
et ne faites pas Spécifiez SomeCol
, alors il sera par défaut à 0
.
Si vous insérez un enregistrement et Spécifiez SomeCol
la valeur de NULL
(et votre colonne autorise les valeurs nulles),
alors la contrainte par défaut ne sera pas être utilisé et NULL
sera inséré en tant que valeur.
Les notes étaient basées sur les excellents commentaires de chacun ci-dessous.
Merci tout particulièrement :
@Yatrix, @WalterStabosz, @YahooSerious et @StackMan pour leurs commentaires.