Kuinka lisätä sarake, jolla on oletusarvo, olemassa olevaan taulukkoon SQL Serverissä
SQL-palvelimessa voit lisätä olemassa olevaan taulukkoon sarakkeen, jolla on oletusarvo, käyttämällä ALTER
Taulukko ADD
sarakkeen nimi ja NULL/NOT NULL
rajoitus, jolla on DEFAULT
arvo.
Alla olevaa SQL Server -kyselysyntaksia voidaan käyttää oletusarvolla varustetun sarakkeen lisäämiseen olemassa olevaan taulukkoon.
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
Käydään läpi esimerkki sen ymmärtämiseksi tarkemmin.
Ei-nollattavissa olevan sarakkeen lisääminen oletusarvolla olemassa oleville tietueille
Tarkastellaan SQL-palvelimen Employee
-taulukkoa, ja jos haluamme lisätä vähimmäispalkkasarakkeen, jonka oletusarvo on 1000USD
, käytä alla olevaa kyselyä.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL DEFAULT(1000)
GO
Yllä oleva kysely lisää uuden sarakkeen MINIMUM_WAGE
tauluun Employee
ja täyttää sarakkeen olemassa olevilla riveillä oletusarvolla eli 1000
.
Koska olemme lisänneet NOT NULL
-rajoituksen.
Jos et lisää NOT NULL
-rajoitusta, kaikki olemassa olevat rivit ovat NULL
, eikä annetulla DEFAULT
-arvolla ole vaikutusta.
ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO
Kaikki MINIMUM_WAGE
-sarakkeen arvot ovat NULL
.
Sinun on lisättävä DEFAULT
arvo, jos lisäät NOT NULL
rajoituksen, jos taulukko ei ole tyhjä.
Jos esimerkiksi Employee
-taulukko ei ole tyhjä ja jos lisäät uuden sarakkeen NOT NULL
-rajoituksella, se aiheuttaa virheen.
ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO
Yllä oleva sql-palvelinkysely aiheuttaa alla olevan virheen, kun lisätään uusi sarake olemassa olevaan taulukkoon.
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.
Jos taulukko Employee
on tyhjä.
Yllä oleva sql-palvelinkysely lisää uuden sarakkeen ongelmitta.
Nollattavissa olevan sarakkeen lisääminen oletusarvolla olemassa oleville tietueille
Jos haluat lisätä tyhjennettävän sarakkeen, jolla on oletusarvo olemassa oleville tietueille, sinun on käytettävä WITH VALUES
sql-lauseessa.
ALTER TABLE Employee
ADD MINIMUM_WAGE INT
CONSTRAINT Minimum_Pay DEFAULT 1000 WITH VALUES
Yllä oleva kysely lisää sql-palvelimen taulukkoon tyhjennettävän sarakkeen, jossa on oletusarvo olemassa oleville tietueille.
Jos tässä opetusohjelmassa olemme oppineet lisäämään sql-palvelimen taulukkoon sekä nollattavia että ei-nollattavia sarakkeita oletusarvolla kaikille olemassa oleville tietueille.