sql >> Databasteknik >  >> RDS >> Sqlserver

Lägg till en kolumn med ett standardvärde till en befintlig tabell i SQL Server

Syntax:

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

Exempel:

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.

Anmärkningar:

Valfritt begränsningsnamn:
Om du utelämnar CONSTRAINT D_SomeTable_SomeCol då kommer SQL Server att autogenerera
    en Default-Contraint med ett roligt namn som:DF__SomeTa__SomeC__4FB7FEF6

Valfritt med-värden-deklaration:
MED VÄRDEN behövs bara när din kolumn är nullbar
    och du vill att standardvärdet ska användas för befintliga poster.
Om din kolumn är NOT NULL , då kommer den automatiskt att använda standardvärdet
    för alla befintliga poster, oavsett om du anger WITH VALUES eller inte.

Så fungerar inlägg med en standardbegränsning:
Om du infogar en post i SomeTable och gör inte Ange SomeCol s värde, kommer det att vara standard till 0 .
Om du infogar en post och Ange SomeCol s värde som NULL (och din kolumn tillåter null),
    då kommer standardbegränsningen inte användas och NULL kommer att infogas som värdet.

Anteckningar baserades på allas fantastiska feedback nedan.
Särskilt tack till:
    @Yatrix, @WalterStabosz, @YahooSerious och @StackMan för deras kommentarer.



  1. Hur man hittar medelvärdet för en numerisk kolumn i SQL

  2. Bevilja alla på ett specifikt schema i db till en grupproll i PostgreSQL

  3. Vilka är de bästa metoderna för att använda en GUID som primärnyckel, särskilt när det gäller prestanda?

  4. PSQL kommandoradsargument i DO-skript