Kuidas lisada SQL Serveris olemasolevasse tabelisse vaikeväärtusega veerg

SQL serveris, et lisada olemasolevasse tabelisse vaikeväärtusega veerg, kasutage ALTER tabelis ADD veeru nimi koos NULL/NOT NULL piiranguga DEFAULT väärtusega.

Allpool esitatud SQL serveri päringu süntaksiga saab lisada olemasolevasse tabelisse vaikeväärtusega veeru.

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

Vaatame selle täpsemaks mõistmiseks läbi ühe näite.

Olemasolevatele kirjetele vaikeväärtusega mittetäidetava veeru lisamine

Võtame SQL-serveri tabeli Employee ja kui soovime lisada miinimumpalga veeru vaikeväärtusega 1000USD, kasutame alljärgnevat päringut.

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

Ülaltoodud päring lisab tabelisse Employee uue veeru MINIMUM_WAGE ja täidab olemasolevate ridade veeru vaikeväärtusega, st 1000.

Kuna me oleme lisanud NOT NULL piirangu.

Kui te ei lisa NOT NULL piirangut, on kõik olemasolevad read NULL ja DEFAULT esitatud väärtus ei mõjuta.

ALTER TABLE Employee
ADD MINIMUM_WAGE int DEFAULT(1000)
GO

Kõik MINIMUM_WAGE veeru väärtused on NULL.

Te peate lisama DEFAULT väärtuse, kui lisate NOT NULL piirangu, kui tabel ei ole tühi.

Näiteks kui tabel Employee ei ole tühi ja kui te lisate uue veeru koos NOT NULL piiranguga, siis tekib viga.

ALTER TABLE Employee
ADD MINIMUM_WAGE int NOT NULL
GO

Ülaltoodud SQL-serveri päring tekitab olemasolevasse tabelisse uue veeru lisamisel alljärgneva vea.

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.

Kui tabel Employee on tühi.

Ülaltoodud SQL-serveri päring lisab uue veeru ilma probleemideta.

Nullable veeru lisamine vaikeväärtusega olemasolevatele kirjetele

Kui soovite lisada nullitava veeru vaikeväärtusega olemasolevatele kirjetele, peate kasutama sql-avalduses WITH VALUES.

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

Ülaltoodud päringuga lisatakse SQL-serveri tabelisse nullitav veerg, millel on olemasolevate kirjete jaoks vaikeväärtus.

Kui see juhendaja on õppinud lisama nii nullable kui ka non nullable veergu sql serveri tabelisse vaikeväärtusega kõigi olemasolevate kirjete jaoks.