UNIKATNE Ograničenja u Microsoft SQL Serveru

Prednosti korišćenja jedinstvenih ograničenja nad ograničenjima glavnog ključa

Kreiranjem UNIQUE ograničenja, administratori SQL Servera navode da kolona ne može sadržavati duplirane vrijednosti. Kada kreirate novo UNIQUE ograničenje, SQL Server proverava predmetnu kolonu kako bi utvrdio da li sadrži duplirane vrijednosti. Ako tabela sadrži prethodno postojeće duplikate, naredba za kreiranje ograničenja ne uspije. Slično tome, kada jednom imate UNIQUE ograničenje na stupcu, pokušaće dodati ili modifikovati podatke koji bi uzrokovali dupliciranje takođe ne uspevaju.

Zašto koristiti UNIQUE ograničenja

Jedinstveno ograničenje i primarni ključ obavezuju jedinstvenost, ali postoje vremena da je UNIQUE ograničenje bolji izbor.

Stvaranje UNIQUE Ograničenja

Postoji mnogo načina na koje možete stvoriti UNIQUE ograničenje u SQL Serveru. Ako želite da koristite Transact-SQL da biste dodali UNIQUE ograničenje na postojeću tabelu, možete koristiti izraz ALTER TABLE, kao što je ilustrovano u nastavku:

ALTER TABELA DODAJ UREĐAJ UNIKAT ()

Ako više volite da interakciju sa SQL Server koristeći GUI alate, takođe možete kreirati UNIQUE ograničenje pomoću SQL Server Management Studioa . Evo kako:

  1. Otvorite SQL Server Management Studio .
  2. Proširite tabelu foldera baze podataka u kojoj želite kreirati ograničenje.
  3. Desnim tasterom miša kliknite na tabelu u kojoj želite dodati ograničenje i kliknite Design .
  4. U meniju Table Designer kliknite na Indexes / Keys .
  5. U dijalogu Indeksi / tasteri kliknite na dugme Dodaj .
  6. Izaberite jedinstveni ključ u padajućoj listi Tip.

UNIQUE Ograničenja vs. UNIQUE Indeksi

Postojala je neka zabuna u vezi sa razlikom između UNIQUE ograničenja i UNIQUE indeksa. Iako možete koristiti različite Transact-SQL naredbe za njihovo kreiranje (ALTER TABLE ... ADD CONSTRAINT za ograničenja i CREATE UNIQUE INDEX za indekse), oni imaju isti efekat, uglavnom. Ustvari, kada kreirate UNIKATNO ograničenje, stvarno stvara UNIQUE indeks na stolu. Međutim, značajno je napomenuti da postoji nekoliko razlika: