UNIKALIŲ „Microsoft SQL Server“ apribojimų vadovas

Sukurdami UNIKALUMĄ suvaržymas, SQL serverio administratoriai nurodo, kad duomenų bazės stulpelyje negali būti pasikartojančių reikšmių. Kai sukursite naują UNIKALUMĄ suvaržymas, „SQL Server“ patikrina aptariamą stulpelį, kad nustatytų, ar jame nėra pasikartojančių reikšmių. Jei stalo yra dublikatų, apribojimo kūrimo komanda nepavyksta. Panašiai, nustačius UNIKALŲ apribojimą stulpelyje, bandymai pridėti ar modifikuoti duomenis, dėl kurių egzistuoja dublikatai, taip pat nepavyksta.

SQL kodas juodame fone.
KIVILCIM PINAR / „Getty Images“

Kodėl verta naudoti unikalius apribojimus

UNIKALUS suvaržymas ir pagrindinis raktas užtikrina unikalumą, tačiau yra atvejų, kai UNIKALUS suvaržymas yra geresnis pasirinkimas.

  • Norėdami nurodyti kelis lentelės apribojimus, naudokite UNIQUE apribojimą. Prie lentelės galite pridėti tik vieną pagrindinį raktą.
  • Naudokite UNIKALŲ suvaržymą, kai stulpelis leidžia nulines vertes. Pirminio rakto apribojimus galima pridėti tik prie stulpelių, kuriuose neleidžiamos jokios vertės.

Unikalaus suvaržymo sukūrimas

instagram viewer

Lengviausias būdas sukurti unikalų „Transact-SQL“ apribojimą yra prisijungti prie duomenų bazės variklio „SQL Management Studio“ objekto naršyklėje ir spustelėti Nauja užklausa.

Norėdami sukurti naują lentelę ir pridėti apribojimą stulpelyje, naudokite šią užklausą, jei reikia modifikuodami terminus:

NAUDOTI „AdventureWorks2012“; 
EITI
SUKURTI LENTEL Production Produkcija. „TransactionHistoryAhive“
(
„TransactionID int NOT NULL“,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
EITI.

Vykdykite užklausą.

Panašiai, norėdami sukurti unikalų apribojimą esamoje lentelėje, vykdykite šią T-SQL užklausą:

NAUDOTI „AdventureWorks2012“; 
EITI
KEITIMO LENTELĖ Asmuo. Slaptažodis
PRIDĖTI SĄLYGĄ AK_Password UNIQUE (PasswordHash, PasswordSalt);
EITI.

UNIKALI apribojimai vs. UNIKALŪS indeksai

Buvo tam tikra painiava dėl skirtumo tarp UNIQUE apribojimo ir UNIQUE indekso. Nors galite naudoti skirtingas T-SQL komandas, kad jas sukurtumėte (ALTER TABLE ir ADD CONSTRAINT apribojimams ir CREATE UNIQUE INDEX indeksams), jie dažniausiai turi tą patį poveikį. Tiesą sakant, kai sukuriate UNIKALŲ suvaržymą, jis iš tikrųjų sukuria UNIKALŲ indeksą ant stalo. Tačiau atkreipkite dėmesį į keletą skirtumų:

  • Kai kuriate rodyklę, prie kūrimo komandos galite pridėti papildomų parinkčių.
  • Stulpelis, kuriam taikomi UNIKALŪS apribojimai, gali būti naudojamas kaip svetimas raktas.