UNIQUE ograničenja u Microsoft SQL Serveru

Prednosti korištenja UNIQUE ograničenja u vezi primarnih ključnih ograničenja

Stvaranjem UNIQUE ograničenja administratori sustava SQL Server navedu da stupac ne smije sadržavati dvostruke vrijednosti. Kada stvorite novo UNIQUE ograničenje, SQL Server provjerava stupac u pitanju kako bi utvrdio sadrži li duple vrijednosti. Ako tablica sadrži postojeće duplikate, naredba za ograničavanje stvaranja ne uspije. Slično tome, nakon što imate UNIQUE ograničenje na stupac, pokušaj dodavanja ili izmjene podataka koji bi uzrokovali postojanje duplikata također ne uspijeva.

Zašto koristiti UNIQUE ograničenja

Jedinstveno ograničenje i primarni ključni oboje provode jedinstvenost, ali postoje vremena kada je UNIQUE ograničenje bolji izbor.

Stvaranje UNIQUE ograničenja

Postoji mnogo načina na koje možete stvoriti UNIQUE ograničenje u sustavu SQL Server. Ako želite koristiti Transact-SQL za dodavanje UNIQUE ograničenja na postojeću tablicu, možete upotrijebiti izjavu ALTER TABLE, kako je prikazano u nastavku:

ALTER TABLE DODAJ KONSTRAINU UNIQUE ()

Ako želite interakciju s SQL Serverom pomoću GUI alata, također možete stvoriti UNIQUE ograničenje koristeći SQL Server Management Studio . Evo kako:

  1. Otvorite SQL Server Management Studio .
  2. Proširite mapu Tablica baze podataka u kojoj želite stvoriti ograničenje.
  3. Desnom tipkom miša kliknite tablicu u koju želite dodati ograničenje i kliknite Dizajn .
  4. U izborniku Table Designer, kliknite Indexes / Keys .
  5. U dijaloškom okviru Indexi / Tipke kliknite Dodaj .
  6. Odaberite Jedinstveni ključ u padajućem popisu Vrsta .

UNIQUE constraints vs UNIQUE Indexes

Došlo je do neke konfuzije o razlikama između UNIQUE ograničenja i UNIQUE indeksa. Iako možete koristiti različite naredbe Transact-SQL da biste ih stvorili (ALTER TABLE ... ADD CONSTRAINT za ograničenja i CREATE UNIQUE INDEX za indekse), oni imaju isti učinak, u većini slučajeva. Zapravo, kada stvorite UNIQUE ograničenje, zapravo stvara UNIQUE indeks na tablici. Značajno je, međutim, zabilježiti da postoji nekoliko razlika: