Проблемы с ограничением SQL CHECK

Я использую SQL Server 2008, и у меня есть таблица с тремя столбцами: Length, StartTime и EndTime. Я хочу сделать ограничение CHECK для этой таблицы, в котором говорится, что:

if Length == NULL then
  StartTime <> NULL and EndTime <> NULL
else
  StartTime == NULL and EndTime == NULL

Я начал пробовать такие вещи:

Length == NULL AND StartTime <> NULL AND EndTime <> NULL

Очевидно, этого недостаточно, но даже это простое выражение не будет валидным. Я получаю сообщение об ошибке:

"Error validating 'CK_Test_Length_Or_Time'. Do you want to edit the constraint?"

Любые идеи о том, как это сделать?


person Deniz Dogan    schedule 16.04.2010    source источник


Ответы (1)


В SQL Server нет оператора ==. При проверке на нуль вы должны использовать «есть»

Пожалуйста, попробуйте это:

((Length is null AND starttime is not null AND endtime is not null) OR
(Length is not null AND starttime is null AND endtime is null))

ХТН

person Raja    schedule 16.04.2010