Så här lägger du till en kolumn med ett standardvärde till en befintlig tabell i SQL Server

Om du vill lägga till en kolumn med ett standardvärde i en befintlig tabell i SQL Server använder du ALTER Table ADD column name with NULL/NOT NULL constraint with DEFAULT value.

Nedanstående syntax för SQL-serverfrågor kan användas för att lägga till en kolumn med standardvärde i en befintlig tabell.

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

Låt oss gå igenom ett exempel för att förstå det ytterligare.

Lägga till en kolumn som inte kan nollställas med standardvärde för befintliga poster

Tänk på en tabell Employee i SQL Server, och om vi vill lägga till kolumnen minimilön med standardvärdet 1000USD, använd nedanstående fråga.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO

Ovanstående fråga lägger till en ny kolumn MINIMUM_WAGE i tabellen Employee och fyller kolumnen i befintliga rader med standardvärdet, dvs. 1000.

Eftersom vi har lagt till begränsningen NOT NULL.

Om du inte lägger till begränsningen NOT NULL kommer alla befintliga rader att vara NULL och det angivna värdet DEFAULT har ingen inverkan.

ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO

Alla kolumnvärden i MINIMUM_WAGE kommer att vara NULL.

Du måste lägga till DEFAULT -värdet om du lägger till NOT NULL -begränsningen om tabellen inte är tom.

Om t.ex. tabellen Employee inte är tom och du lägger till en ny kolumn med begränsningen NOT NULL kommer det att uppstå ett fel.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO

Ovanstående sql-serverfråga ger nedanstående fel när du lägger till en ny kolumn i den befintliga tabellen.

ALTER TABLE only allows columns to be added that can contain nulls, or have a DEFAULT definition specified, or the column being added is an identity or timestamp column, or alternatively if none of the previous conditions are satisfied the table must be empty to allow addition of this column. Column 'MINIMUM_WAGE' cannot be added to non-empty table 'Employee' because it does not satisfy these conditions.

Om tabellen Employee är tom.

Ovanstående sql-serverfråga lägger till en ny kolumn utan problem.

Lägga till en kolumn som kan upphävas med standardvärde för befintliga poster

Om du vill lägga till en kolumn som inte kan ogiltigförklaras med standardvärde för befintliga poster måste du använda WITH VALUES i sql-utdraget.

ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES

Ovanstående fråga kommer att lägga till en kolumn som kan upphävas i SQL-serverns tabell med standardvärdet för befintliga poster.

I den här handledningen har vi lärt oss att lägga till en kolumn, både nullable och non nullable, i SQL-serverns tabell med ett standardvärde för alla befintliga poster.