Stvaranjem JEDINSTVENOG ograničenje, Administratori SQL Servera navode da stupac baze podataka ne smije sadržavati dvostruke vrijednosti. Kada kreirate novi JEDINSTVENI ograničenje, SQL Server provjerava dotični stupac kako bi utvrdio sadrži li duplicirane vrijednosti. Ako je stol sadrži duplikate, naredba za stvaranje ograničenja ne uspijeva. Slično tome, nakon što definirate UNIQUE ograničenje na stupcu, pokušaji dodavanja ili izmjene podataka zbog kojih bi postojali duplikati također ne uspijevaju.
Zašto koristiti JEDINSTVENA ograničenja
UNIQUE ograničenje i primarni ključ nameću jedinstvenost, ali ponekad je UNIQUE ograničenje bolji izbor.
- Upotrijebite UNIQUE ograničenje da odredite nekoliko ograničenja za tablicu. Stolu možete priložiti samo jedan primarni ključ.
- Koristite UNIQUE ograničenje kada stupac dopušta null vrijednosti. Ograničenja primarnog ključa mogu se pridružiti samo stupcima koji ne dopuštaju null vrijednosti.
Stvaranje JEDINSTVENOG ograničenja
Najjednostavniji način za stvaranje jedinstvenog ograničenja u Transact-SQL-u je povezivanje s mehanizmom baze podataka u Object Exploreru u SQL Management Studiju, a zatim kliknite Novi upit.
Upotrijebite sljedeći upit, modificirajući pojmove po potrebi, da biste stvorili novu tablicu i dodali ograničenje na stupac:
USE AdventureWorks2012;
IĆI
STVORI TABELU Proizvodnja. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
IĆI.
Izvršite upit.
Slično tome, da biste stvorili jedinstveno ograničenje na postojećoj tablici, izvršite sljedeći T-SQL upit:
USE AdventureWorks2012;
IĆI
ALTER TABLE Osoba. Zaporka
DODAJ OGRANIČENJE AK_Password UNIQUE (PasswordHash, PasswordSalt);
IĆI.
JEDINSTVENA Ograničenja vs. JEDINSTVENI indeksi
Došlo je do zabune oko razlike između UNIQUE ograničenja i UNIQUE indeksa. Iako za njihovo stvaranje možete koristiti različite naredbe T-SQL (ALTER TABLE i ADD CONSTRAINT za ograničenja i CREATE UNIQUE INDEX za indekse), oni većinom imaju isti učinak. Zapravo, kada kreirate UNIQUE ograničenje, ono zapravo stvara UNIQUE indeks na tablici. Ipak, imajte na umu nekoliko razlika:
- Kada kreirate indeks, naredbi za stvaranje možete dodati dodatne mogućnosti.
- Stupac koji podliježe UNIQUE ograničenju može se koristiti kao strani kljuc.