如何:定义 CHECK 约束表达式

将 CHECK 约束附加到表或列时,必须包含 Transact-SQL 表达式。 有关此操作的详细信息,请参见 如何:将新的 CHECK 约束附加到表或列

可创建简单的约束表达式,用简单条件检查数据;或者使用布尔运算符创建复杂表达式,用若干个条件检查数据。 例如,假设 authors 表中包含一个 zip 列,此列需要 5 位数的字符串。 下列示例约束表达式保证只允许 5 位数:

zip LIKE '[0-9][0-9][0-9][0-9][0-9]'

或者,假设 sales 表中包含一个名为 qty 的列,该列要求大于 0 的值。 下面的示例约束保证只允许正值:

qty > 0

备注

对于 CHECK 约束,有些数据库具有不同的功能。有关数据库如何使用 CHECK 约束的详细信息,请查阅数据库文档。

备注

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

定义约束表达式

  1. 创建新的 CHECK 约束。 有关如何执行此操作的详细信息,请参见 如何:将新的 CHECK 约束附加到表或列

  2. 在**“CHECK 约束”对话框中,使用以下语法在“CHECK 约束表达式”**对话框中键入一个表达式:

    {constant
    column_name
    function
    (subquery)}
    [{operator
    AND
    OR
    NOT}
    {constant
    column_name
    function
    (subquery)}]
    

    备注

    此语法是 Microsoft SQL Server 特有的语法。有关详细信息,请查阅数据库文档。

    Transact-SQL 语法由下列参数组成:

    Parameter

    说明

    constant

    一个如数字或字符数据这样的值。 字符数据必须用单引号 (') 引起来。

    column_name

    指定一列。

    function

    内置函数。 有关函数的详细信息,请参见 SQL Server 文档。

    operator

    算术、按位、比较或字符串运算符。 有关运算符的详细信息,请参见 SQL Server 文档。

    AND

    在布尔表达式中使用,用来连接两个表达式。 当两个表达式都为真时返回结果。

    当在一个语句中同时使用 AND 和 OR 时,首先处理 AND。 可以使用括号更改执行顺序。

    OR

    在布尔表达式中使用,用来连接两个或多个条件。 当任何一个条件为真时返回结果。

    当在一个语句中同时使用 AND 和 OR 时,在计算 AND 之后再计算 OR。 可以使用括号更改执行顺序。

    NOT

    对任何布尔表达式(它可包含如 LIKE、NULL、BETWEEN、IN 和 EXISTS 这样的关键字)求反。

    当在一个语句中使用多个逻辑运算符时,首先处理 NOT。 可以使用括号更改执行顺序。

请参见

参考

“CHECK 约束”对话框

概念

查询中的表达式