Détails
Ajouter une colonne avec une valeur par défaut à une table existante dans SQL Server
Comment ajouter une colonne avec une valeur par défaut à une table existante dans [SQL Server 2000][1] / [SQL Server 2005][2] ?
[1] : http://en.wikipedia.org/wiki/Microsoft_SQL_Server#Genesis [2] : http://en.wikipedia.org/wiki/Microsoft_SQL_Server#SQL_Server_2005
2634
3
Syntaxe :
Exemple :
Notes :
Nom de la contrainte facultatif:
Si vous omettez
CONSTRAINT D_SomeTable_SomeCol
alors SQL Server va générer automatiquement  ;   ; une contrainte par défaut avec un nom bizarre comme :
DF__SomeTa__SomeC__4FB7FEF6
Déclaration With-Values facultative:
Le
WITH VALUES
n'est nécessaire que lorsque votre colonne est Nullable  ;   ; et que vous voulez que la valeur par défaut soit utilisée pour les enregistrements existants.
Si votre Colonne est
NOT NULL
, alors elle utilisera automatiquement la Valeur par défaut  ;   ; pour tous les enregistrements existants, que vous spécifiez
WITH VALUES
ou non.Comment les Insertions fonctionnent avec une Contrainte par Défaut:
Si vous insérez un enregistrement dans
SomeTable
et que vous ne spécifiez pas la valeur deSomeCol
, alors celle-ci aura la valeur par défaut0
.Si vous insérez un enregistrement et Spécifiez la valeur de
SomeCol
commeNULL
(et que votre colonne autorise les nuls),  ;   ; alors la contrainte par défaut ne sera pas utilisée et
NULL
sera inséré comme valeur.Les notes ont été basées sur les excellents commentaires de tout le monde ci-dessous.
Remerciements spéciaux à:
  ;   ; @Yatrix, @WalterStabosz, @YahooSerious, et @StackMan pour leurs commentaires.
L'inclusion de DEFAULT remplit la colonne dans les lignes existantes avec la valeur par défaut, de sorte que la contrainte NOT NULL n'est pas violée.
L'article MSDN [ALTER TABLE (Transact-SQL)][1] présente toute la syntaxe de l'altération d'une table.
[1] : http://msdn.microsoft.com/en-us/library/ms190273.aspx