SQL Server检查约束可为空

时间:2019-03-06 14:17:51

标签: sql sql-server constraints

对于任何检查约束,如果BOOLEAN_EXPRESSION返回true,则CHECK约束允许该值,否则不允许该值。对于可为空的列,可以在插入行时为此列传递null。当您为AGE列传递NULL时,布尔表达式的计算结果为UNKNOWN并允许该值。但是,如果我传递null,则在非可为空的列的情况下会发生什么?

1 个答案:

答案 0 :(得分:0)

  

对于任何检查约束,如果BOOLEAN_EXPRESSION返回true,则CHECK约束允许该值,否则不允许。

这是不正确的。仅当布尔表达式的值为FALSE时,检查约束才返回检查验证错误。 <input #myInputIn type="text" class="col-7" id="someid" placeholder="Type to search.." /> 不会产生错误。

这与NULLWHERE子句的行为不同。

如果该列不可为空,则将违反not-CASE WHEN约束。我认为这是在NULL约束之前检查的,但是顺序并不重要。您将得到可空性错误。