Altro
Aggiungere una colonna con un valore predefinito a una tabella esistente in SQL Server
Come si può aggiungere una colonna con un valore predefinito a una tabella esistente in SQL Server 2000 / SQL Server 2005?
2634
3
Sintassi:
Esempio:
Note:
Nome opzionale del vincolo:
Se lasciate fuori
CONSTRAINT D_SomeTable_SomeCol
allora SQL Server genererà automaticamenteun Default-Contraint con un nome divertente come:
DF__SomeTa__SomeC__4FB7FEF6
Dichiarazione opzionale With-Values:
Il
WITH VALUES
è necessario solo quando la tua colonna è Nullablee vuoi che il valore predefinito sia usato per i record esistenti; Se la tua colonna è
NON NULL
, allora userà automaticamente il valore di defaultper tutti i record esistenti, sia che tu specifichi
WITH VALUES
o no.Come funzionano gli inserimenti con un Default-Constraint:
Se inserisci un record in
QualcheTabella
e non non specifichi il valore diQualcheCol
, allora sarà Predefinito a0
; Se inserisci un record e specifichi il valore diSomeCol
'comeNULL
(e la tua colonna permette i null),allora il Default-Constraint non sarà usato e
NULL
sarà inserito come valore.Le note sono state basate sul grande feedback di tutti qui sotto.
Ringraziamenti speciali a:
@Yatrix, @WalterStabosz, @YahooSerious, e @StackMan per i loro commenti.
L'inclusione del DEFAULT riempie la colonna nelle righe esistenti con il valore predefinito, quindi il vincolo NOT NULL non viene violato.
L'articolo MSDN ALTER TABLE (Transact-SQL) ha tutta la sintassi di alter table.