В MS SQL Server 2008 возможно определить UNIQUE CONSTRAINT для столбца НО, который проверяется, ЕСЛИ И ТОЛЬКО ЕСЛИ для значений NULL. То есть будет много NULL, которые следует игнорировать. Однако для ненулевых значений он должен быть уникальным.
UNIQUE CONSTRAINT
Вам необходимо создать Отфильтрованный индекс :
CREATE UNIQUE NONCLUSTERED INDEX User_PinNr_IUC ON [User] (pinNr) WHERE pinNr IS NOT NULL
Ссылаясь на CREATE INDEX (Transact-SQL)
ГДЕ <предикат фильтра>: Создает отфильтрованный индекс, указав какие строки включить в индекс. Отфильтрованный индекс должен быть некластеризованный индекс на таблицу. Создает отфильтрованная статистика для строк данных в отфильтрованном индексе.