Izveidojot UNIKĀLU ierobežojums, SQL Server administratori norāda, ka datu bāzes kolonnā nedrīkst būt vērtību dublikāti. Kad izveidojat jaunu UNIKĀLO ierobežojums, SQL Server pārbauda attiecīgo kolonnu, lai noteiktu, vai tajā ir dublētas vērtības. Ja tabula satur dublikātus, ierobežojuma izveides komanda neizdodas. Tāpat pēc kolonnas UNIKĀLA ierobežojuma definēšanas neizdodas arī mēģinājumi pievienot vai modificēt datus, kuru dēļ pastāvētu dublikāti.
Kāpēc jāizmanto UNIKĀLI ierobežojumi
Unikāls ierobežojums un primārā atslēga gan īsteno unikalitāti, taču dažreiz labāka izvēle ir UNIKĀLAIS ierobežojums.
- Izmantojiet UNIKĀLU ierobežojumu, lai tabulai norādītu vairākus ierobežojumus. Tabulai var pievienot tikai vienu primāro atslēgu.
- Izmantojiet UNIKĀLU ierobežojumu, ja kolonna pieļauj nulles vērtības. Primāro atslēgu ierobežojumus var pievienot tikai kolonnām, kurās nav atļautas nulles vērtības.
UNIKĀLA ierobežojuma izveide
Vienkāršākais veids, kā izveidot unikālu ierobežojumu pakalpojumā Transact-SQL, ir izveidot savienojumu ar datu bāzes dzinēju objektu pārlūkprogrammā SQL Management Studio un pēc tam noklikšķiniet uz
Jauns vaicājums.Izmantojiet šo vaicājumu, pēc vajadzības modificējot terminus, lai izveidotu jaunu tabulu un kolonnai pievienotu ierobežojumu:
IZMANTOJIET AdventureWorks2012;
IET
IZVEIDOT GALDA Ražošana. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
IET.
Izpildiet vaicājumu.
Līdzīgi, lai izveidotu unikālu ierobežojumu esošai tabulai, izpildiet šādu T-SQL vaicājumu:
IZMANTOJIET AdventureWorks2012;
IET
ALTER TABULA Persona. Parole
PIEVIENOT IEROBEŽOJUMU AK_Password UNIQUE (PasswordHash, PasswordSalt);
IET.
UNIKĀLI ierobežojumi vs. UNIKĀLI indeksi
Ir bijusi neskaidrība par atšķirību starp UNIQUE ierobežojumu un UNIQUE indeksu. Lai gan to izveidošanai varat izmantot dažādas T-SQL komandas (ALTER TABLE un ADD CONSTRAINT ierobežojumiem un CREATE UNIQUE INDEX indeksiem), lielākoties tām ir vienāds efekts. Faktiski, izveidojot UNIKĀLU ierobežojumu, tas faktiski uz galda rada UNIKĀLU indeksu. Tomēr ņemiet vērā vairākas atšķirības:
- Veidojot indeksu, izveides komandai varat pievienot papildu opcijas.
- Kolonnu, uz kuru attiecas UNIKĀLI ierobežojumi, var izmantot kā sveša atslēga.