Výhody používania UNIQUE obmedzenia nad obmedzeniami primárnych kľúčov
Vytvorením obmedzenia UNIQUE správcovia systému SQL Server určujú, že stĺpec nesmie obsahovať duplicitné hodnoty. Keď vytvoríte nové obmedzenie UNIQUE, SQL Server skontroluje príslušný stĺpec a určí, či obsahuje duplicitné hodnoty. Ak tabuľka obsahuje už existujúce duplikáty, príkaz vytvorenia obmedzenia zlyhá. Podobne, ak máte obmedzenie UNIQUE na stĺpci, pokusy o pridanie alebo zmenu údajov, ktoré by spôsobili existenciu duplicít, tiež zlyhajú.
Prečo používať obmedzenia UNIQUE
Unikátne obmedzenie a primárny kľúč podporujú jedinečnosť, ale existujú časy, kedy je UNIQUE obmedzení lepšou voľbou.
- Použite obmedzenie UNIQUE, ak chcete mať viacero obmedzení na tabuľku. Do tabuľky môžete pripojiť iba jeden primárny kľúč.
- Použiť obmedzenie UNIQUE, ak stĺpec povolí nulové hodnoty. Obmedzenia primárneho kľúča môžu byť pripojené iba do stĺpcov, ktoré nepovoľujú nulové hodnoty.
Vytvorenie obmedzenia UNIQUE
Existuje mnoho spôsobov, ako môžete vytvoriť UNIQUE obmedzenie v SQL Server. Ak chcete používať Transact-SQL na pridanie obmedzenia UNIQUE na existujúcu tabuľku, môžete použiť príkaz ALTER TABLE, ako je znázornené nižšie:
ALTER TABLE PRIDANIE CONSTRAINT UNIQUE ()Ak chcete pracovať so serverom SQL Server pomocou nástrojov GUI, môžete tiež vytvoriť obmedzenie UNIQUE pomocou nástroja SQL Server Management Studio . Tu je postup:
- Otvorte program SQL Server Management Studio .
- Rozbaľte priečinok Tabuľky databázy, v ktorom chcete vytvoriť obmedzenie.
- Kliknite pravým tlačidlom na tabuľku, do ktorej chcete pridať obmedzenie, a kliknite na tlačidlo Návrh .
- V ponuke Návrhár tabuľky kliknite na položku Indexy / Kľúče .
- V dialógovom okne Indexy / Kľúče kliknite na položku Pridať .
- V rozbaľovacom zozname Typ vyberte položku Unikátny kľúč .
UNIQUE Obmedzenia vs. UNIQUE indexy
Vyskytla sa nejaká nedôvera v súvislosti s rozdielom medzi UNIQUE obmedzením a indexom UNIQUE. Kým môžete vytvoriť rôzne príkazy Transact-SQL (ALTER TABLE ... ADD CONSTRAINT pre obmedzenia a CREATE UNIQUE INDEX pre indexy), majú väčšinou rovnaký efekt. V skutočnosti, keď vytvoríte UNIQUE obmedzenie, v skutočnosti vytvorí UNIQUE index v tabuľke. Je však dôležité poznamenať, že existuje niekoľko rozdielov:
- Pri vytváraní indexu môžete do príkazu vytvárania pridať ďalšie možnosti.
- Stĺpec s obmedzením UNIQUE môže byť použitý ako cudzí kľúč .