如何:定义 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 设置。
定义约束表达式
创建新的 CHECK 约束。 有关如何执行此操作的详细信息,请参见 如何:将新的 CHECK 约束附加到表或列。
在**“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。 可以使用括号更改执行顺序。