UNIQUE Obmedzenia v Microsoft SQL Server

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.

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:

  1. Otvorte program SQL Server Management Studio .
  2. Rozbaľte priečinok Tabuľky databázy, v ktorom chcete vytvoriť obmedzenie.
  3. Kliknite pravým tlačidlom na tabuľku, do ktorej chcete pridať obmedzenie, a kliknite na tlačidlo Návrh .
  4. V ponuke Návrhár tabuľky kliknite na položku Indexy / Kľúče .
  5. V dialógovom okne Indexy / Kľúče kliknite na položku Pridať .
  6. 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: