Kā pievienot kolonnu ar noklusējuma vērtību esošai tabulai SQL serverī
SQL serverī, lai esošai tabulai pievienotu kolonnu ar noklusējuma vērtību, izmantojiet ALTER
Tabulas ADD
kolonnas nosaukumu ar NULL/NOT NULL
ierobežojumu ar DEFAULT
vērtību.
Lai esošajā tabulā pievienotu kolonnu ar noklusējuma vērtību, var izmantot tālāk norādīto sql servera vaicājuma sintaksi.
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Aplūkosim piemēru, lai to labāk izprastu.
Nenolicējamas kolonnas pievienošana ar noklusējuma vērtību esošajiem ierakstiem
Aplūkojiet SQL servera tabulu Employee
, un, ja mēs vēlamies pievienot minimālās algas sleju ar noklusējuma vērtību 1000USD
, izmantojiet tālāk sniegto vaicājumu.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO
Iepriekš minētais vaicājums pievienos jaunu sleju MINIMUM_WAGE
tabulā Employee
un aizpildīs esošo rindu sleju ar noklusējuma vērtību, t. i., 1000
.
Tā kā mēs esam pievienojuši NOT NULL
ierobežojumu.
Ja nepievienosiet ierobežojumu NOT NULL
, visas esošās rindas būs NULL
, un DEFAULT
norādītajai vērtībai nebūs nekādas ietekmes.
ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO
Visu MINIMUM_WAGE
kolonnu vērtības būs NULL
.
Jums ir jāpievieno DEFAULT
vērtība, ja pievienojat NOT NULL
ierobežojumu, ja tabula nav tukša.
Piemēram, ja tabula Employee
nav tukša un ja jūs pievienojat jaunu kolonnu ar ierobežojumu NOT NULL
, tiks pieļauta kļūda.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO
Iepriekš minētais sql servera vaicājums, pievienojot jaunu kolonnu esošajai tabulai, izraisīs šādu kļūdu.
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.
Ja Employee
tabula ir tukša.
Iepriekš minētais sql servera vaicājums bez problēmām pievienos jaunu kolonnu.
Nulējamas kolonnas pievienošana ar noklusējuma vērtību esošajiem ierakstiem
Ja vēlaties pievienot nullei pakļautu kolonnu ar noklusējuma vērtību esošajiem ierakstiem, sql izteikumā jāizmanto WITH VALUES
.
ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES
Iepriekš minētais vaicājums pievienos sql servera tabulai nullable kolonnu ar noklusējuma vērtību esošajiem ierakstiem.
Šajā pamācībā mēs esam iemācījušies pievienot sql servera tabulai gan nullable, gan non nullable kolonnas ar noklusējuma vērtību visiem esošajiem ierakstiem.