sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är Unique Constraint i SQL Server - SQL Server / TSQL Tutorial Del 95

Vad är Unique Constraint i SQL Server:

Unique Constraint i SQL Server skapas på en kolumn eller kolumner för att begränsa kolumnen/kolumnerna att endast acceptera unika värden.
Endast ett enda nollvärde tillåts i en kolumn där Unique Constraint skapas.

Scenario:

Låt oss säga att du arbetar som SQL Server-utvecklare för försäkringsbolag, du ombeds skapa dbo.Kundtabell som ska ha en kolumn SSN och den ska alltid acceptera unika värden.


Lösning:

För scenariot ovan kan vi använda Unique Constraint on SSN Column. Nedanstående skript kan användas för att skapa unika begränsningar på en kolumn.
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')
 
 
Kontrollera data i dbo.Kundtabell genom att använda Välj fråga
Hur man lägger till unika begränsningar på en kolumn i SQL Server

Låt oss använda systemvyerna för att kontrollera om Unique Constraint har lagts till och vilket namn SQL Server har gett den.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Hur man lägger till Unique Constraint i SQL Server
 Som vi kan se att SQL Server har gett "UQ__Customer__CA1E8E3C7E8AFCB1" namn till Unique Constraint. Om vi ​​vill implementera någon namnkonvention borde vi ha angett namn själva.
Om vi ​​försöker infoga värdet som redan finns i Unique Constraint-kolumnen kommer vi att få felet under.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Level 14, State 1, Line 11
Brott mot UNIQUE KEY-begränsning 'UQ__Customer__CA1E8E3C7E8AFCB1'. Kan inte infoga dubblettnyckel i objektet 'dbo.Customer'. Dubblettnyckelvärdet är ().
Utsatsen har avslutats.

Om du vill skapa den unika begränsningen med någon namnkonvention kan vi använda nedanstående syntax.

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 :Vad är unik begränsning i SQL Server





  1. Datumkonvertering och kultur:Skillnaden mellan DATE och DATETIME

  2. Tillåt null i unik kolumn

  3. Hur man använder SqlTransaction i C#

  4. Optimerad SQL för trädstrukturer