Co to jest unikatowe ograniczenie w SQL Server:
Unikalne ograniczenie w SQL Server jest tworzone na kolumnie lub kolumnach, aby ograniczyć kolumny do akceptowania tylko unikalnych wartości.Tylko pojedyncza wartość Null jest dozwolona w kolumnie, w której tworzone jest unikatowe ograniczenie.
Scenariusz:
Załóżmy, że pracujesz jako programista SQL Server dla firmy ubezpieczeniowej, zostaniesz poproszony o utworzenie tabeli dbo.Customer, która powinna mieć kolumnę SSN i zawsze powinna akceptować wartości Unique.Rozwiązanie:
W powyższym scenariuszu możemy użyć unikalnego ograniczenia w kolumnie SSN. Poniższy skrypt może zostać użyty do utworzenia unikalnego ograniczenia w kolumnie.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') Sprawdź dane w dbo.Customer table za pomocą Select query
![]() |
| Jak dodać unikalne ograniczenie do kolumny w SQL Server |
Skorzystajmy z widoków systemowych, aby sprawdzić, czy dodano ograniczenie unikatowe i jaką nazwę nadał mu program SQL Server.
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'UNIQUE'
![]() |
| Jak dodać unikalne ograniczenie w SQL Server |
Jak widać, SQL Server nadał nazwę UQ__Customer__CA1E8E3C7E8AFCB1 Unique Constraint. Jeśli chcemy zaimplementować jakąś konwencję nazewnictwa, powinniśmy sami podać nazwę.
Jeśli spróbujemy wstawić wartość, która już istnieje w kolumnie Unique Constraint, otrzymamy poniższy błąd.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null) Msg 2627, Poziom 14, Stan 1, Wiersz 11
Naruszenie ograniczenia UQ__Customer__CA1E8E3C7E8AFCB1 'UQ__Customer__CA1E8E3C7E8AFCB1'. Nie można wstawić zduplikowanego klucza w obiekcie „dbo.Customer”. Zduplikowana wartość klucza to (
Oświadczenie zostało zakończone.
Jeśli chcesz utworzyć Unikalne Ograniczenie z pewną konwencją nazewnictwa, możemy użyć poniższej składni.
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)
) Wideo demonstracyjne:co to jest unikatowe ograniczenie w SQL Server

