SQL Server unik begrensning

SQL Server unik begrensning

En av de mest frustrerende for en databasebruker er å finne dupliserte oppføringer på et bord. Selv om det er noen tilfeller der det å ha dupliserte verdier kan være en nødvendighet, skjer det sjelden.

Derfor, i stedet for å gå tilbake til bordet ditt for å filtrere og fjerne de dupliserte postene, er det bra å unngå problemet i utgangspunktet.

Heldigvis er det ikke et massivt tilsagn, takket være den unike begrensningen i SQL -serveren kan du sikre at dataene i en gitt kolonne er unike og ingen duplikatverdier eksisterer.

Bli med oss ​​når vi lærer hva den unike begrensningen gjør.

SQL Server unik begrensning

Det er godt å tenke på funksjonaliteten til den unike begrensningen. Når du har opprettet en unik begrensning, oppretter SQL Server automatisk en unik indeks for operasjonen. Dette sikrer at databasemotoren kan håndheve dataens unike som definert av begrensningen.

La oss utforske hvordan vi kan bruke den unike begrensningen.

SQL Server Lag en tabell med unik begrensning

Følgende spørring oppretter en tabell med unike begrensninger:

Drop Database hvis eksisterer nettverk;
opprette databasenettverk;
bruke nettverk;
Lag tabellinformasjon (
id int ikke null identitet primærnøkkel,
Brukernavn varchar (50),
ip_address varchar (50) ikke null unik,
land varchar (50) ikke null,
nettleser varchar (50) standard null,
byte int ikke null standard 0
);

De forrige uttalelsene setter IP_Address -kolonnen som unik. Dette sikrer at bare en oppføring med samme IP er lagt til i tabellen.

Du kan også stille en kolonne som unik, som vist i følgende:

Lag tabellinformasjon (
id int ikke null identitet primærnøkkel,
Brukernavn varchar (50),
ip_address varchar (50) ikke null,
land varchar (50) ikke null,
nettleser varchar (50) standard null,
byte int ikke null standard 0,
unik (ip_address)
);

Når vi har tabellen med en unik begrensning, kan vi legge til en ny post som følger:

Sett inn informasjon (brukernavn, ip_address, land, nettleser, byte)
Verdier ('Croosbar', '88.241.248.129 ',' Us ',' Mozilla ', 34000),
('Codeyer', '219.199.7.49 ',' de ',' krom ', 5648);

Den forrige innsatserklæringen legger til to poster i tabellen.

Hvis vi kjører den forrige uttalelsen på nytt, returnerer SQL-serveren en feil.

Brudd på unik nøkkelbegrensning 'uq__informat__5376bcc424ce6277'. Kan ikke sette inn duplikatnøkkel i objektet 'dbo.informasjon'. Duplikatnøkkelverdien er (88.241.248.129).

I dette tilfellet indikerer SQL -serveren at den forrige innsatserklæringen bryter reglene for den unike begrensningen.

SQL Server angir unik begrensning for flere kolonner

Du kan også tilordne en unik begrensning til mer enn en kolonne som angitt i følgende syntaks:

Lag tabell tabell_navn (
col_1,
col_2,
.. ,
col_n,
unik (col_1, col_2, ... col_n)
);

SQL Server angir unik begrensning til eksisterende tabell

For å legge til en unik begrensning til en eksisterende tabell, kan du bruke Alter Table -kommandoen som vist i følgende syntaks:

ALTER TABLE TABLE_NAME
Legg til begrensningsbegrensning
Unik (kolonne1, kolonne2, ...);

For eksempel:

endre tabellinformasjon
Legg til begrensning unik_ip unik (ip_address);

Den forrige spørringen legger til en unik begrensning til IP_Address -kolonnen.

SQL Server Drop unik begrensning

Du kan fjerne en eksisterende unik begrensning ved hjelp av Alter -tabellkommandoen som følger:

ALTER TABLE TABLE_NAME
Slipp begrensningsbegrensningsnavn;

Eksempel:

Endre tabellinformasjon
Slipp begrensning unikq_ip;

Husk at du ikke kan gjøre endringer i en eksisterende unik begrensning. For å endre en aktuell begrensning, må du derfor slippe den og deretter lage den på nytt med nye definisjoner.

Konklusjon

Takk for at du ble med oss ​​i denne opplæringen. Denne guiden forklarte det grunnleggende om å jobbe med de unike begrensningene i en SQL -server.

Takk for at du leste. Vi sees i vår neste opplæring!