Уникальное ограничение только для столбцов NON-NULL - PullRequest
3 голосов
/ 18 июня 2011

В MS SQL Server 2008 возможно определить UNIQUE CONSTRAINT для столбца НО, который проверяется, ЕСЛИ И ТОЛЬКО ЕСЛИ для значений NULL. То есть будет много NULL, которые следует игнорировать. Однако для ненулевых значений он должен быть уникальным.

1 Ответ

5 голосов
/ 18 июня 2011

Вам необходимо создать Отфильтрованный индекс :

CREATE UNIQUE NONCLUSTERED INDEX User_PinNr_IUC
ON [User] (pinNr)
WHERE pinNr IS NOT NULL

Ссылаясь на CREATE INDEX (Transact-SQL)

ГДЕ <предикат фильтра>:
Создает отфильтрованный индекс, указав какие строки включить в индекс. Отфильтрованный индекс должен быть некластеризованный индекс на таблицу. Создает отфильтрованная статистика для строк данных в отфильтрованном индексе.

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