UNIQUE apribojimų naudojant pirminius raktinius apribojimus naudojimo pranašumai
Kuriant UNIQUE apribojimą, SQL Server administratoriai nurodo, kad stulpelyje gali nebūti pasikartojančių verčių. Kai sukursite naują UNIQUE apribojimą, SQL Server patikrina aptariamą stulpelį, norėdamas nustatyti, ar jame yra pasikartojančių verčių. Jei lentelėje yra anksčiau egzistuojančių dublikatų, komanda apribojimo kūrimo nepavyksta. Panašiai, kai stulpelyje yra UNIQUE apribojimas, bandymai pridėti ar modifikuoti duomenis, kurie gali sukelti pasikartojimų, taip pat nepavyks.
Kodėl naudokite UNIQUE apribojimus
UNIQUE apribojimas ir pirminis raktas - tai unikalumas, tačiau kartais yra geresnis pasirinkimas - UNIQUE apribojimas.
- Naudokite UNIQUE apribojimą, kai norite, kad lentelėje būtų keli apribojimai. Galite pridėti tik vieną pirminį raktą prie lentelės.
- Naudokite UNIQUE apribojimą, kai stulpelyje leidžiamos nulinės reikšmės. Pirminius raktinius apribojimus galima pridėti tik prie stulpelių, kurie neleidžia nulinių reikšmių.
Kurti UNIQUE apribojimą
Yra daug būdų, kaip galite sukurti UNIQUE apribojimą SQL Server. Jei norite naudoti Transact-SQL, norėdami pridėti UNIQUE apribojimą esamoje lentelėje, galite naudoti teiginį ALTER TABLE, kaip parodyta toliau:
ALTER TABLE ADD CONSTRAINT UNIQUE ()Jei norėtumėte bendrauti su "SQL Server" naudodami GUI įrankius, taip pat galite sukurti UNIQUE apribojimą naudodami " SQL Server Management Studio" . Štai kaip:
- Atidarykite "SQL Server Management Studio" .
- Išplėskite katalogo " Tables " duomenų bazę, kurioje norite sukurti apribojimą.
- Dešiniuoju pelės mygtuku spustelėkite lentelę, kurioje norite pridėti apribojimą, ir spustelėkite Dizainas .
- Meniu "Table Designer" spustelėkite Indexes / Keys .
- Dialogo lange Indeksai / klavišai spustelėkite Pridėti .
- Pasirinkite Unikalų raktą išskleidžiamajame sąraše Tipas .
UNIQUE apribojimai ir UNIQUE indeksai
Yra keletas painiavos dėl skirtumo tarp UNIQUE apribojimo ir UNIQUE indekso. Nors galite sukurti skirtingas Transact-SQL komandas (ALTER TABLE ... ADD CONSTRAINT dėl apribojimų ir CREATE UNIQUE INDEX indeksams), jie didžiąja dalimi turi tą patį poveikį. Iš tiesų, kai jūs sukuriate UNIQUE apribojimą, ji iš tikrųjų sukuria UNIQUE rodyklę lentelėje. Tačiau svarbu pažymėti, kad yra keletas skirtumų:
- Sukūrę indeksą galite pridėti papildomų kūrimo komandos parinkčių.
- Stulpelis, kuriam taikomas UNIQUE apribojimas, gali būti naudojamas kaip užsienio raktas .