Hvad er Unique Constraint i SQL Server:
Unik begrænsning i SQL Server oprettes på en kolonne eller kolonner for at begrænse kolonnen/erne til kun at acceptere unikke værdier.Kun enkelt nulværdi er tilladt i en kolonne, hvorpå Unik begrænsning er oprettet.
Scenarie:
Lad os sige, at du arbejder som SQL Server-udvikler for forsikringsselskab, du bliver bedt om at oprette dbo. Kundetabel, der skal have en kolonne SSN, og den skal altid acceptere Unikke værdier.Løsning:
Til ovenstående scenarie kan vi bruge Unique Constraint på SSN Column. Nedenstående script kan bruges til at skabe en unik begrænsning på en kolonne.USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
[FirstName] [varchar](50) NULL,
[LastName] [varchar](50) NULL,
[SSN] VARCHAR(11),
Unique(SSN)
)
--Insert sample records in table
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
,('Aamir','Shahzad','000-00-0001')
,('Aamir','Shahzad','000-00-0002') Tjek dataene i dbo.Kundetabel ved at bruge Vælg forespørgsel
![]() |
| Sådan tilføjes en unik begrænsning på en kolonne i SQL Server |
Lad os bruge systemvisningerne til at kontrollere, om Unique Constraint er tilføjet, og hvilket navn SQL Server har givet den.
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'UNIQUE'
![]() |
| Sådan tilføjes unikke begrænsninger i SQL Server |
Som vi kan se, at SQL Serveren har givet "UQ__Customer__CA1E8E3C7E8AFCB1" navn til Unique Constraint. Hvis vi ønsker at implementere en eller anden navnekonvention, skulle vi selv have givet navn.
Hvis vi forsøger at indsætte den værdi, der allerede findes i kolonnen Unique Constraint, får vi fejlen nedenfor.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null) Msg 2627, Level 14, State 1, Line 11
Overtrædelse af UNIQUE KEY constraint 'UQ__Customer__CA1E8E3C7E8AFCB1'. Kan ikke indsætte dubletnøgle i objektet 'dbo.Customer'. Dubletnøgleværdien er (
Erklæringen er blevet afsluttet.
Hvis du gerne vil oprette den unikke begrænsning med en eller anden navnekonvention, kan vi bruge nedenstående syntaks.
USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
[FirstName] [varchar](50) NULL,
[LastName] [varchar](50) NULL,
[SSN] VARCHAR(11),
Constraint UQ_Dbo_Customer_SSN Unique(SSN)
) Videodemo:Hvad er unik begrænsning i SQL Server

