Sprievodca UNIKÁTNYMI obmedzeniami na serveri Microsoft SQL Server

click fraud protection

Vytvorením JEDINEČNÉHO obmedzenie, Správcovia servera SQL Server určujú, že stĺpec databázy nemusí obsahovať duplicitné hodnoty. Keď vytvoríte nový JEDINEČNÝ obmedzenie, SQL Server skontroluje príslušný stĺpec, aby zistil, či obsahuje duplicitné hodnoty. Ak stôl obsahuje duplikáty, príkaz na vytvorenie obmedzenia zlyhá. Podobne po definovaní JEDINEČNÉHO obmedzenia pre stĺpec zlyhajú aj pokusy o pridanie alebo úpravu údajov, ktoré by spôsobili existenciu duplikátov.

SQL kód na čiernom pozadí.
KIVILCIM PINAR / Getty Images

Prečo používať JEDINEČNÉ obmedzenia

JEDINEČNÉ obmedzenie a primárny kľúč vynucujú jedinečnosť, ale niekedy sa stáva, že jedinečné obmedzenie je lepšou voľbou.

  • Pomocou JEDINEČNÉHO obmedzenia môžete určiť niekoľko obmedzení pre tabuľku. K tabuľke môžete pripojiť iba jeden primárny kľúč.
  • Keď stĺpec povoľuje nulové hodnoty, použite JEDINEČNÉ obmedzenie. Obmedzenia primárneho kľúča je možné pripojiť iba k stĺpcom, ktoré neumožňujú nulové hodnoty.

Vytvorenie JEDINEČNÉHO obmedzenia

Najjednoduchší spôsob, ako vytvoriť jedinečné obmedzenie v Transact-SQL, je pripojiť sa k databázovému stroju v aplikácii Object Explorer v nástroji SQL Management Studio a potom kliknúť na

instagram viewer
Nový dopyt.

Pomocou nasledujúceho dotazu môžete podľa potreby upraviť výrazy a vytvoriť tak novú tabuľku a pridať obmedzenie do stĺpca:

POUŽÍVAJTE AdventureWorks2012; 
Choď
VYTVORIŤ TABUĽKU Výroba. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
Choď.

Vykonajte dopyt.

Podobne, aby ste vytvorili jedinečné obmedzenie pre existujúcu tabuľku, vykonajte nasledujúci dotaz T-SQL:

POUŽÍVAJTE AdventureWorks2012; 
Choď
ALTER TABLE Osoba. Heslo
PRIDAŤ OBMEDZENIE AK_Password UNIQUE (PasswordHash, PasswordSalt);
Choď.

JEDINEČNÉ Obmedzenia vs. JEDINEČNÉ indexy

Došlo k určitému zmätku v rozdieloch medzi obmedzeniami UNIQUE a UNIQUE indexom. Aj keď na ich vytvorenie môžete použiť rôzne príkazy T-SQL (ALTER TABLE a ADD CONSTRAINT pre obmedzenia a CREATE UNIQUE INDEX pre indexy), majú väčšinou rovnaký efekt. V skutočnosti, keď vytvoríte JEDINEČNÉ obmedzenie, v skutočnosti sa vytvorí JEDINEČNÝ index na stole. Všimnite si však niekoľko rozdielov:

  • Pri vytváraní indexu môžete do príkazu create pridať ďalšie možnosti.
  • Stĺpec, na ktorý sa vzťahuje UNIQUE obmedzenie, sa môže použiť ako cudzí kľúč.
instagram story viewer