Vodnik po ENOTNIH omejitvah v strežniku Microsoft SQL Server

Z ustvarjanjem ENOTNE omejitev, Skrbniki SQL Server določajo, da stolpec baze podatkov ne sme vsebovati podvojenih vrednosti. Ko ustvarite novo UNIQUE omejitev, SQL Server preveri zadevni stolpec, da ugotovi, ali vsebuje podvojene vrednosti. Če je miza vsebuje dvojnike, ukaz za ustvarjanje omejitve ne uspe. Podobno, ko v stolpcu definirate UNIQUE omejitev, tudi poskusi dodajanja ali spreminjanja podatkov, zaradi katerih bi obstajali dvojniki, tudi ne uspejo.

Koda SQL na črni podlagi.
KIVILCIM PINAR / Getty Images

Zakaj uporabljati UNIKATNE omejitve

UNIQUE omejitev in primarni ključ uveljavljata edinstvenost, včasih pa je UNIQUE omejitev boljša izbira.

  • Z omejitvijo UNIQUE določite več omejitev za tabelo. Tabeli lahko pritrdite samo en primarni ključ.
  • Uporabite UNIQUE omejitev, ko stolpec dovoljuje ničelne vrednosti. Omejitve primarnega ključa je mogoče pritrditi samo na stolpce, ki ne dovoljujejo ničelnih vrednosti.

Ustvarjanje ENOTNE Omejitve

Najlažji način za ustvarjanje edinstvene omejitve v Transact-SQL je povezava z Database Engine v Object Explorer v SQL Management Studio in nato kliknite

instagram viewer
Nova poizvedba.

Uporabite naslednjo poizvedbo, po potrebi spremenite izraze, da ustvarite novo tabelo in dodate omejitev v stolpec:

UPORABI AdventureWorks2012; 
GO
USTVARI MIZO Proizvodnja. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
GO.

Izvedite poizvedbo.

Če želite ustvariti edinstveno omejitev za obstoječo tabelo, izvedite naslednjo poizvedbo T-SQL:

UPORABI AdventureWorks2012; 
GO
ALTER TABLE Oseba. Geslo
DODAJ OMEJITEV AK_Password UNIQUE (PasswordHash, PasswordSalt);
GO.

UNIKATNE Omejitve vs. UNIKATNI indeksi

Glede razlike med omejitvijo UNIQUE in indeksom UNIQUE je prišlo do nekaj zmede. Čeprav lahko za njihovo ustvarjanje uporabite različne ukaze T-SQL (ALTER TABLE in ADD CONSTRAINT za omejitve in CREATE UNIQUE INDEX za indekse), imajo večinoma enak učinek. Ko ustvarite omejitev UNIQUE, dejansko ustvari indeks UNIQUE v tabeli. Upoštevajte pa več razlik:

  • Ko ustvarite indeks, lahko ukazu za ustvarjanje dodate dodatne možnosti.
  • Stolpec, za katerega velja UNIQUE omejitev, se lahko uporablja kot a tuji ključ.