Ограничение уникального ключа в SQL Server для новых значений в столбце - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу реализовать ограничение уникального ключа в моей таблице для новых значений, предыдущие данные дублируются, например,

declare @temp table
(
id int identity,
PolicyNO varchar(30)
)
insert into @temp values('abc')
insert into @temp values('abc')
insert into @temp values('abc')

, теперь я хочу добавить уникальные ограничения для таблицы @temp.Новая запись с id = 3 или выше должна быть уникальной, и здесь третья запись должна быть ограничена для вставки

ALTER TABLE @TEMP   
ADD CONSTRAINT Unique_PolicyNo UNIQUE (PolicyNO ) where id>3

что-то в этом роде: у меня проблемы с синтаксисом, любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 ноября 2018

Попробуйте:

CREATE TABLE dbo.temp 
(
id int identity,
PolicyNO varchar(30)
)
insert into  dbo.temp  values('abc')
insert into  dbo.temp  values('abc')
insert into  dbo.temp  values('abc')


CREATE UNIQUE NONCLUSTERED INDEX [IX__tem] 
ON  dbo.temp  (PolicyNO)
WHERE id>3

Затем попробуйте дважды ввести одно новое значение.

или

CREATE UNIQUE NONCLUSTERED INDEX [IX__tem] 
ON  dbo.temp  (PolicyNO)
WHERE id>3 AND PolicyNO IS NOT NULL

, чтобы разрешить вставку значений null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...