Сценарий:
Вие работите като разработчик на SQL Server, от вас се иска да предоставите скриптове за създаване на таблица dbo.Customer с уникално ограничение за колоните Име и Фамилия.Решение:
Както знаем, че уникалното ограничение в SQL Server е създадено върху колона или колони, за да ограничи колоната/ите, за да приемат само уникални стойности.Скриптът по-долу може да се използва за създаване на уникално ограничение върху множество колони в нашия случай име и фамилия.
USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
[FirstName] [varchar](50) NULL,
[LastName] [varchar](50) NULL,
[SSN] VARCHAR(11),
Constraint UQ_Dbo_Customer_FName_LName Unique(FirstName,LastName)
)
--Let's insert some sample data to test Unique Constraint
Insert into dbo.Customer(FirstName,LastName,SSN)
Values(Null,Null,'000-00-0000'),
('Aamir',Null,'000-00-0000'),
(Null,'Aamir','000-00-0000')
,('Aamir','Shahzad','000-00-0001')
,('Raza','M','000-00-0002') Ако сте забелязали инструкцията за вмъкване, в първия запис поставих и двете стойности Null за FirstName и Last Name. Във втория запис използвах стойността 'Aamir' за собствено име и Null за фамилно име. В 3-ти запис е обратно на 2-ри запис. Оттук разбираме, че уникалното ограничение работи върху стойностите на двете колони. Докато комбинираната стойност от двете колони е уникална, ще ни позволи да вмъкнем дори една от тях да е нула.
Ако искам да вмъкна друг запис, в който имам Null за фамилно име , ще ми позволи без проблем, тъй като е уникален от съществуващите стойности.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza',Null,'000-00-0000') Нека проверим записите в таблицата с помощта на заявка за избор.
![]() |
| Как да добавите уникално ограничение за множество колони в таблица на SQL Server |
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza',Null,'000-00-0000') Msg 2627, ниво 14, състояние 1, ред 30 Нарушение на ограничението UNIQUE KEY 'UQ_Dbo_Customer_FName_LName'. Не може да се вмъкне дублиран ключ в обект 'dbo.Customer'. Стойността на дублирания ключ е (Raza,
Видео демонстрация:Създайте уникално ограничение за множество колони в SQL Server
