SQL добавить уникальные 3 столбца, где 4 - NULL - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть 3 столбца: Number, StepNumber, LineId.

Я хочу сделать их уникальными, но только там, где четвертый столбец FinishTime равен NULL.

Если FinishTime не NULL, эти три столбца не могут быть уникальными.

Я пытался:

ALTER TABLE myTable ADD CONSTRAINT checkUnique UNIQUE (Number, StepNumber, LineId)

, но добавлять WHERE FinishTime IS NULL запрещено.

Example

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Создать уникальный некластеризованный индекс

Create unique nonclustered index [my_index]
on [mytable]([FinishTime])
where [FinishTime] is not null
0 голосов
/ 11 сентября 2018

Включить столбец FinishTime также в определение ограничения.

ALTER TABLE myTable ADD CONSTRAINT checkUnique UNIQUE (Number, StepNumber, LineId, FinishTime)
...