Výhody použití UNIQUE omezení přes primární omezení klíče
Vytvořením omezení UNIQUE správci serveru SQL určují, že sloupec nemusí obsahovat duplicitní hodnoty. Při vytvoření nového omezení UNIQUE SQL Server zkontroluje příslušný sloupec a zjistí, zda obsahuje duplicitní hodnoty. Pokud tabulka obsahuje již existující duplikáty, příkaz vytváření omezení selže. Stejně tak, jakmile na stĺpci máte UNIQUE omezení, pokusy o přidání nebo úpravu dat, které by způsobily existenci duplicit, také selžou.
Proč používat UNIQUE omezení
Unikátní omezení a primární klíč podporují jedinečnost, ale existují časy, kdy je UNIQUE omezení lepší volbou.
- Použijte omezení UNIQUE, pokud chcete, aby tabulka obsahovala více omezení. K tabulce lze připojit pouze jeden primární klíč.
- Použijte omezení UNIQUE, pokud sloupec povolí hodnoty null. Omezení primárního klíče lze připojit pouze ke sloupcům, které nepovolují hodnoty null.
Vytvoření omezení UNIQUE
Existuje mnoho způsobů, jak můžete v SQL Server vytvořit omezení UNIQUE. Pokud chcete použít Transact-SQL k přidání omezení UNIQUE na existující tabulku, můžete použít příkaz ALTER TABLE, jak je znázorněno níže:
ALTER TABLE PŘIDAT CONSTRAINT UNIQUE ()Pokud dáváte přednost interakci se serverem SQL pomocí nástrojů GUI, můžete také vytvořit omezení UNIQUE pomocí SQL Server Management Studio . Zde je návod:
- Otevřete SQL Server Management Studio .
- Rozbalte složku Tabulky databáze, ve které chcete vytvořit omezení.
- Klepněte pravým tlačítkem myši na tabulku, do které chcete přidat omezení, a klepněte na tlačítko Návrh .
- V nabídce Návrhář tabulky klepněte na položku Rejstříky / klíče .
- V dialogovém okně Rejstříky / klíče klepněte na tlačítko Přidat .
- Zvolte v rozevíracím seznamu Typ jedinečný klíč .
UNIQUE omezení vs. UNIQUE indexy
Došlo k určitému zmatku ohledně rozdílu mezi podmínkou UNIQUE a indexem UNIQUE. Zatímco můžete použít různé příkazy Transact-SQL k jejich vytvoření (ALTER TABLE ... ADD CONSTRAINT pro omezení a CREATE UNIQUE INDEX pro indexy), mají většinou stejný efekt. Ve skutečnosti, když vytvoříte UNIQUE omezení, ve skutečnosti vytvoří UNIQUE index v tabulce. Je však důležité poznamenat, že existuje několik rozdílů:
- Když vytvoříte index, můžete k příkazu vytvoření přidat další možnosti.
- Sloupec, na který se vztahuje omezení UNIQUE, může být použit jako cizí klíč .