Kaip į esamą lentelę pridėti stulpelį su numatytąja reikšme SQL serveryje
SQL serveryje norėdami į esamą lentelę įtraukti stulpelį su numatytąja reikšme, naudokite ALTER
lentelę ADD
stulpelio pavadinimą su NULL/NOT NULL
apribojimu ir DEFAULT
reikšme.
Toliau pateikta SQL serverio užklausos sintaksė gali būti naudojama norint į esamą lentelę įtraukti stulpelį su numatytąja reikšme.
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Kad geriau suprastumėte, panagrinėkime pavyzdį.
Nenulinio stulpelio su numatytąja reikšme pridėjimas esamiems įrašams
Panagrinėkime Employee
lentelę SQL serveryje, ir jei norime pridėti minimalaus darbo užmokesčio stulpelį su numatytąja reikšme 1000USD
, naudokite toliau pateiktą užklausą.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO
Pateikta užklausa į Employee
lentelę pridės naują stulpelį MINIMUM_WAGE
ir užpildys esamų eilučių stulpelį numatytąja reikšme, t. y. 1000
.
Kadangi pridėjome NOT NULL
apribojimą.
Jei nepridėsite NOT NULL
apribojimo, visos esamos eilutės bus NULL
, o pateikta DEFAULT
reikšmė neturės jokios įtakos.
ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO
Visų MINIMUM_WAGE
stulpelių reikšmės bus NULL
.
Jei pridedate NOT NULL
apribojimą, jei lentelė nėra tuščia, turite pridėti DEFAULT
reikšmę.
Pavyzdžiui, jei Employee
lentelė nėra tuščia ir jei pridėsite naują stulpelį su NOT NULL
apribojimu, bus išmesta klaida.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO
Pridedant naują stulpelį į esamą lentelę, aukščiau pateikta sql serverio užklausa iškels toliau nurodytą klaidą.
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.
Jei Employee
lentelė yra tuščia.
Pateikta sql serverio užklausa be jokių problemų pridės naują stulpelį.
Nulinio stulpelio su numatytąja reikšme pridėjimas esamiems įrašams
Jei norite pridėti nulinį stulpelį su numatytoji reikšme esamiems įrašams, sql užklausoje turite naudoti WITH VALUES
.
ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES
Pateikta užklausa į sql serverio lentelę pridės nullable stulpelį su numatytąja reikšme esamiems įrašams.
Šioje pamokoje išmokome į sql serverio lentelę pridėti nulinį ir nenulinį stulpelį su numatytąja reikšme visiems esamiems įrašams.