Hoe voeg je een kolom met een standaardwaarde toe aan een bestaande tabel in SQL Server

Om in SQL server een kolom met een standaardwaarde aan een bestaande tabel toe te voegen, gebruikt u ALTER Table ADD column name with NULL/NOT NULL constraint with DEFAULT value.

Onderstaande sql-server query syntaxis kan worden gebruikt om een kolom met de standaardwaarde toe te voegen aan de bestaande tabel.

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

Laten we een voorbeeld doornemen om het verder te begrijpen.

Een niet-nulbare kolom toevoegen met standaardwaarde voor bestaande records

Overweeg een Employee tabel in SQL server, en als we een minimum loon kolom willen toevoegen met standaard waarde als 1000USD, gebruik dan de onderstaande query.

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

De bovenstaande query voegt een nieuwe kolom MINIMUM_WAGE toe aan de tabel Employee en vult de kolom in bestaande rijen met de standaardwaarde 1000.

Omdat we de beperking NOT NULL hebben toegevoegd.

Als u de beperking NOT NULL niet toevoegt, zijn alle bestaande rijen NULL en heeft de waarde DEFAULT geen invloed.

ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO

Alle MINIMUM_WAGE kolomwaarden zullen NULL zijn.

U moet DEFAULT waarde toevoegen als u NOT NULL constraint als de tabel niet leeg is.

Als bijvoorbeeld de tabel Employee niet leeg is, en u voegt een nieuwe kolom toe met de beperking NOT NULL, krijgt u een foutmelding.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO

De bovenstaande sql server query geeft de onderstaande foutmelding bij het toevoegen van een nieuwe kolom aan de bestaande 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.

Als de tabel Employee leeg is.

De bovenstaande sql server query zal zonder problemen een nieuwe kolom toevoegen.

Een vervulbare kolom toevoegen met standaardwaarde voor bestaande records

Als je een nulbare kolom met standaardwaarde voor bestaande records wilt toevoegen, moet je WITH VALUES gebruiken in de sql verklaring.

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

De bovenstaande query zal een nullable kolom toevoegen aan de sql server tabel met de standaardwaarde voor bestaande records.

In deze tutorial hebben we geleerd om een kolom toe te voegen, zowel nullable en niet-nullable colums aan de sql server tabel met standaard waarde voor alle bestaande records.