sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er Unique Constraint i SQL Server - SQL Server / TSQL Tutorial Del 95

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





  1. Installer Azure Data Studio på Ubuntu 18.04

  2. Sådan installeres MySQL på macOS

  3. Sådan overvåger du din ProxySQL med Prometheus og ClusterControl

  4. Hvordan kontrollerer man det maksimale antal tilladte forbindelser til en Oracle-database?