Ограничение проверки SQL Server Nullable - PullRequest
0 голосов
/ 06 марта 2019

Для любого проверочного ограничения, если BOOLEAN_EXPRESSION возвращает true, тогда ограничение CHECK разрешает значение, в противном случае это не так. Для столбца с нулевым значением для этого столбца можно передать значение NULL при вставке строки. Когда вы передаете NULL для столбца AGE, логическое выражение оценивается как UNKNOWN и допускает значение. Но что произойдет в случае столбца, отличного от null, если я передам null?

1 Ответ

0 голосов
/ 06 марта 2019

Для любого проверочного ограничения, если BOOLEAN_EXPRESSION возвращает true, тогда ограничение CHECK допускает значение, в противном случае это не так.

Это неверно. Ограничение проверки возвращает ошибку проверки проверки только тогда, когда логическое выражение оценивается как ЛОЖЬ. NULL не генерирует ошибку.

Это поведение отличается от WHERE и CASE WHEN.

Если столбец не равен NULL, то у вас будет нарушение ограничения not- NULL. Я думаю, что проверяется до ограничения CHECK, но порядок не имеет значения. Вы получите ошибку обнуляемости.

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