Sådan tilføjes en kolonne med en standardværdi til en eksisterende tabel i SQL Server

Hvis du vil tilføje en kolonne med en standardværdi til en eksisterende tabel i SQL Server, skal du bruge ALTER Table ADD column name with NULL/NOT NULL constraint with DEFAULT value.

Nedenstående SQL Server-forespørgselssyntaks kan bruges til at tilføje en kolonne med standardværdien i den eksisterende tabel.

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

Lad os gennemgå et eksempel for at forstå det yderligere.

Tilføjelse af en kolonne, der ikke kan annulleres, med standardværdi for eksisterende poster

Overvej en Employee tabel i SQL server, og hvis vi ønsker at tilføje kolonnen minimumsløn med standardværdi som 1000USD, skal du bruge nedenstående forespørgsel.

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

Ovenstående forespørgsel tilføjer en ny kolonne MINIMUM_WAGE i tabellen Employee og udfylder kolonnen i eksisterende rækker med standardværdien, dvs. 1000.

Fordi vi har tilføjet begrænsningen NOT NULL.

Hvis du ikke tilføjer NOT NULL begrænsningen, vil alle eksisterende rækker være NULL, og den angivne DEFAULT -værdi vil ikke have nogen virkning.

ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO

Alle kolonneværdierne i MINIMUM_WAGE vil være NULL.

Du skal tilføje DEFAULT -værdien, hvis du tilføjer NOT NULL -begrænsningen, hvis tabellen ikke er tom.

Hvis f.eks. tabellen Employee ikke er tom, og du tilføjer en ny kolonne med begrænsningen NOT NULL, vil der opstå en fejl.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO

Ovenstående sql server forespørgsel vil kaste nedenstående fejl, mens du tilføjer en ny kolonne til den eksisterende tabel.

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.

Hvis tabellen Employee er tom.

Ovenstående sql server forespørgsel vil tilføje en ny kolonne uden problemer.

Tilføjelse af en kolonne, der kan annulleres, med standardværdi for eksisterende poster

Hvis du ønsker at tilføje en nullable kolonne med standardværdi for eksisterende poster, skal du bruge WITH VALUES i sql-angivelsen.

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

Ovenstående forespørgsel vil tilføje en nullable kolonne til SQL-servertabellen med standardværdien for eksisterende poster.

I denne tutorial har vi lært at tilføje en kolonne både nullable og non nullable kolonner til sql server tabellen med standardværdi for alle eksisterende poster.