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.
- Koristite UNIQUE ograničenje kada želite više tabela. Jednom primarnom ključu možete dodati samo jednu tablicu.
- Koristite UNIQUE ograničenje kada stupac dozvoljava nulte vrijednosti. Primarni ključni ograničenja se mogu pripisati samo stupcima koji ne dozvoljavaju null vrijednosti.
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:
- Otvorite SQL Server Management Studio .
- Proširite tabelu foldera baze podataka u kojoj želite kreirati ograničenje.
- Desnim tasterom miša kliknite na tabelu u kojoj želite dodati ograničenje i kliknite Design .
- U meniju Table Designer kliknite na Indexes / Keys .
- U dijalogu Indeksi / tasteri kliknite na dugme Dodaj .
- 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:
- Kada kreirate indeks, možete dodati dodatne opcije komandi kreiranja.
- Stolica koja podleže UNIQUE ograničenju može se koristiti kao inostrani ključ .