Yhtenäiset rajoitteet Microsoft SQL Serverissa

Edut, joissa käytetään yhtenäisiä rajoituksia ensisijaisten avainrajoitusten suhteen

Luomalla UNIQUE-rajoituksen SQL Server -järjestelmänvalvojat määrittävät, että sarakkeessa ei välttämättä ole päällekkäisiä arvoja. Kun luot uuden UNIQUE-rajoituksen, SQL Server tarkistaa kyseisen sarakkeen sen määrittämiseksi, sisältääkö se kaksoiskappaleita. Jos taulukko sisältää olemassa olevia kaksoiskappaleita, pakkotoiminto-komento epäonnistuu. Vastaavasti, kun olet saanut UNIQUE-rajoituksen sarakkeeseen, yrittää lisätä tai muuttaa tietoja, jotka aiheuttaisivat päällekkäisyyksiä, myös epäonnistuvat.

Miksi käyttää UNIQUE-rajoitteita

UNIQUE-rajoitus ja ensisijainen avain tekevät sekä ainutlaatuisuuden, mutta on olemassa aikoja, jolloin UNIQUE-rajoitteen valinta on parempi.

UNIQUE-rajoituksen luominen

SQL Serverissa on monta tapaa luoda UNIQUE-rajoitin. Jos haluat käyttää Transact-SQL: tä lisäämällä UNIQUE-rajoituksen olemassa olevaan taulukkoon, voit käyttää ALTER TABLE -tapahtumaa, kuten alla on kuvattu:

ALTER TAULUKKO ADD CONSTRAINT UNIQUE ()

Jos haluat käyttää vuorovaikutusta SQL Serverin kanssa GUI-työkaluilla, voit myös luoda UNIQUE-rajoituksen käyttämällä SQL Server Management Studio -ohjelmaa . Näin:

  1. Avaa SQL Server Management Studio .
  2. Laajenna tietokannan Taulukot -kansio, johon haluat luoda rajoituksen.
  3. Napsauta hiiren kakkospainikkeella taulukkoa, johon haluat lisätä rajoitteen, ja napsauta Suunnittelu .
  4. Valitse taulukon suunnittelija -valikosta Indexes / Avaimet .
  5. Valitse Hakemistot / Avaimet -valintaikkunassa Lisää .
  6. Valitse avattavasta tyypistä Ainutlaatuinen avain .

UNIQUE Rajoitukset vs. UNIQUE-indeksit

On ollut hämmennystä UNIQUE-rajoitteen ja UNIQUE-indeksin välisestä erosta. Vaikka voit luoda erilaisia ​​Transact-SQL -komentoja (ALTER TABLE ... ADD CONSTRAINT for constraints ja CREATE UNIQUE INDEX indekseille), niillä on suurin piirtein sama vaikutus. Itse asiassa, kun luot UNIQUE-rajoitteen, se luo todella taulukon UNIQUE-indeksin. On kuitenkin huomattavaa, että on olemassa useita eroja: