2008-09-19 7 views

Répondre

10

Vous avez besoin de deux déclarations. Commencez par créer la colonne avec null. Modifiez ensuite la non contrainte nulle à nullable

alter table mytable add mycolumn varchar(10) not null default ('a value') 
alter table mytable alter column mycolumn varchar(10) null 
4

Je comprends votre question, mais vous dites que pour les enregistrements futurs, NULL (inconnu, indéterminée ou quel que soit votre sémantique sont) est acceptable (mais si elle est laissée dans un insert, il y aura une valeur par défaut), mais pour toutes les données existantes, vous allez y aller et lui assigner la valeur par défaut.

Je devrai regarder attentivement cette situation et demander pourquoi vous allez même autoriser les valeurs nulles dans les enregistrements futurs - étant donné qu'aucun des enregistrements historiques ne l'aura, et il y a un défaut en place pour les enregistrements futurs.

0

ALTER TABLE {TABLENAME} ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE} [**WITH VALUES]**

VALEURS peut être utilisé pour stocker la valeur par défaut dans la nouvelle colonne pour chaque ligne existante dans le tableau.

plus de détails sur le lien MSDN. https://msdn.microsoft.com/en-in/library/ms190273.aspx

Questions connexes