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