En guide til UNIKE begrensninger i Microsoft SQL Server

click fraud protection

Ved å skape et UNIKT begrensning, SQL Server-administratorer spesifiserer at en databasekolonne ikke kan inneholde dupliserte verdier. Når du oppretter en ny UNIK begrensning, Sjekker SQL Server den aktuelle kolonnen for å avgjøre om den inneholder noen dupliserte verdier. Hvis den bord inneholder duplikater, mislykkes kommandoen for oppretting av begrensning. Etter at du har definert en UNIK begrensning på en kolonne, mislykkes også forsøk på å legge til eller endre data som vil føre til at duplikater eksisterer.

SQL-kode på svart bakgrunn.
KIVILCIM PINAR / Getty Images

Hvorfor bruke UNIKE begrensninger

En unik begrensning og en primærnøkkel håndhever begge unikhet, men det er tider at en UNIK begrensning er det bedre valget.

  • Bruk en UNIK begrensning for å spesifisere flere begrensninger for en tabell. Du kan bare feste en primærnøkkel til en tabell.
  • Bruk en UNIK begrensning når en kolonne tillater nullverdier. Primære nøkkelbegrensninger kan bare legges til kolonner som ikke tillater nullverdier.

Opprette en UNIK begrensning

instagram viewer

Den enkleste måten å lage en unik begrensning i Transact-SQL er å koble til en databasemotor i Object Explorer i SQL Management Studio, og deretter klikke Ny spørring.

Bruk følgende spørsmål, endre vilkårene etter behov, for å opprette en ny tabell og legge til en begrensning i en kolonne:

BRUK AdventureWorks2012; 

LAG TABELL Produksjon. TransaksjonHistorieArkiv4
(
TransactionID int IKKE NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
GÅ.

Utfør spørringen.

På samme måte, for å opprette en unik begrensning på en eksisterende tabell, utfør følgende T-SQL-spørring:

BRUK AdventureWorks2012; 

ALTER TABLE Person. Passord
ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);
GÅ.

UNIKE begrensninger vs. UNIKE indekser

Det har vært en viss forvirring om forskjellen mellom en UNIQUE-begrensning og en UNIQUE-indeks. Mens du kan bruke forskjellige T-SQL-kommandoer for å lage dem (ALTER TABLE og ADD CONSTRAINT for constraints og CREATE UNIQUE INDEX for indexes), har de samme effekten, for det meste. Når du oppretter en UNIK begrensning, oppretter den faktisk en UNIK indeks på bordet. Merk imidlertid flere forskjeller:

  • Når du oppretter en indeks, kan du legge til flere alternativer i opprettelseskommandoen.
  • En kolonne som er underlagt en UNIK begrensning kan brukes som en utenlandsk nøkkel.
instagram story viewer