Průvodce UNIQUE Constraints in Microsoft SQL Server

click fraud protection

Vytvořením JEDINEČNÉHO omezení„Správci serveru SQL Server určují, že sloupec databáze nemusí obsahovat duplicitní hodnoty. Když vytvoříte nový JEDINEČNÝ omezení, SQL Server zkontroluje příslušný sloupec, aby zjistil, zda obsahuje duplicitní hodnoty. Pokud stůl obsahuje duplikáty, příkaz pro vytvoření omezení selže. Podobně po definování UNIQUE omezení na sloupci selžou také pokusy o přidání nebo úpravu dat, která by způsobila existenci duplikátů.

Kód SQL na černém pozadí.
KIVILCIM PINAR / Getty Images

Proč používat JEDINEČNÁ omezení

JEDINEČNÉ omezení a primární klíč prosazují jedinečnost, ale v některých případech je UNIQUE omezení lepší volbou.

  • Použijte UNIQUE omezení k zadání několika omezení do tabulky. K tabulce můžete připojit pouze jeden primární klíč.
  • Pokud sloupec povoluje hodnoty null, použijte UNIQUE omezení. Omezení primárního klíče lze připojit pouze ke sloupcům, které neumožňují hodnoty null.

Vytvoření JEDINEČNÉHO omezení

Nejjednodušší způsob, jak vytvořit jedinečné omezení v Transact-SQL, je připojit se k databázovému stroji v Průzkumníku objektů v SQL Management Studio a poté kliknout

instagram viewer
Nový dotaz.

Pomocí následujícího dotazu upravte podle potřeby podmínky a vytvořte novou tabulku a přidejte omezení na sloupec:

POUŽÍT AdventureWorks2012; 
JÍT
VYTVOŘIT TABULKU Produkce. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
JÍT.

Proveďte dotaz.

Podobně pro vytvoření jedinečného omezení na existující tabulce proveďte následující dotaz T-SQL:

POUŽÍT AdventureWorks2012; 
JÍT
ALTER TABLE Osoba. Heslo
PŘIDAT OMEZENÍ AK_Password UNIQUE (PasswordHash, PasswordSalt);
JÍT.

JEDINEČNÁ omezení vs. JEDINEČNÉ indexy

Došlo k určité nejasnosti ohledně rozdílu mezi UNIQUE omezením a UNIQUE indexem. I když k jejich vytváření můžete použít různé příkazy T-SQL (ALTER TABLE a ADD CONSTRAINT pro omezení a CREATE UNIQUE INDEX pro indexy), mají většinou stejný účinek. Ve skutečnosti, když vytvoříte UNIQUE omezení, ve skutečnosti vytvoří UNIQUE index v tabulce. Všimněte si však několika rozdílů:

  • Když vytváříte index, můžete do příkazu vytvoření přidat další možnosti.
  • Sloupec, na který se vztahuje UNIQUE omezení, lze použít jako a cizí klíč.
instagram story viewer