sql >> Database teknologi >  >> RDS >> Sqlserver

Tilføj en kolonne med en standardværdi til en eksisterende tabel i SQL Server

Syntaks:

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

Eksempel:

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.

Bemærkninger:

Valgfrit begrænsningsnavn:
Hvis du udelader CONSTRAINT D_SomeTable_SomeCol så vil SQL Server autogenerere
    en standardkontrænt med et sjovt navn som:DF__SomeTa__SomeC__4FB7FEF6

Valgfri med-værdierklæring:
MED VÆRDIER er kun nødvendig, når din kolonne er nullbar
    og du vil have standardværdien brugt til eksisterende poster.
Hvis din kolonne er IKKE NULL , så vil den automatisk bruge standardværdien
    for alle eksisterende poster, uanset om du angiver WITH VALUES eller ej.

Sådan fungerer indsætninger med en standardbegrænsning:
Hvis du indsætter en post i SomeTable og gør ikke Angiv SomeCol 's værdi, så vil den som standard være 0 .
Hvis du indsætter en Record og Angiv SomeCol 's værdi som NULL (og din kolonne tillader nul),
    så vil standardbegrænsningen ikke bruges og NULL vil blive indsat som værdien.

Noter var baseret på alles gode feedback nedenfor.
Særlig tak til:
    @Yatrix, @WalterStabosz, @YahooSerious og @StackMan for deres kommentarer.



  1. Rekonstruer Standby DB

  2. Sæt NOW() som standardværdi for datetime datatype?

  3. Brug af SSH Tunneling som et VPN-alternativ

  4. Find værtsnavnet og porten ved hjælp af PSQL-kommandoer