WEB开发网
开发学院数据库MSSQL Server 在SQL Server中使用检查约束来验证数据 阅读

在SQL Server中使用检查约束来验证数据

 2009-05-09 10:28:44 来源:WEB开发网   
核心提示:什么是检查约束?检查约束是一个规则,它确认一个SQL Server表中某条记录中的数据可接受的字段值,在SQL Server中使用检查约束来验证数据,检查约束帮助执行域完整性,域完整性定义了一个数据库表中字段的有效值,这个CHECK约束也将被创建,并被赋予一个系统生成的约束名称,检查约束可以验证一个单独字段或一些字段的

什么是检查约束?

检查约束是一个规则,它确认一个SQL Server表中某条记录中的数据可接受的字段值。检查约束帮助执行域完整性。域完整性定义了一个数据库表中字段的有效值。检查约束可以验证一个单独字段或一些字段的域完整性。你对一个单独的字段可以有多个检查完整性。如果被插入或更新的数据违反了一个检查约束,那么数据库引擎将不允许这个插入或更新的操作发生。

检查约束包括一个逻辑表达式,用以确认什么是有效的表达式。逻辑表达式可能是一个单独的表达式比如“Salary < 200000.00”,或多个表达式,比如“RentalDate > GETDATE() and RentalDate < DATEADD(YY,1,GETDATE())”。如果一个逻辑表达式的一个检查约束返回了FALSE值,那么这个检查约束将限制这个表中数据插入或更新。对于逻辑表达式返回的是FALSE以外的值的所有记录将通过这个检查约束并允许记录被更新或插入。为了这个记录能够被插入或更新,与给定INSERT或UPDATE语句相关的所有数据都不能进行检查约束失败(返回一个FALSE值)。检查约束可以在字段级别或表级别被创建。

在一个CREATE TABLE语句上创建检查约束

创建检查约束的一个方法是在表创建时进行。这是一个简单的CREATE TABLE脚本,它创建了一个单独的检查约束:

     CREATE TABLE dbo.Payroll
  (

  ID int PRIMARY KEY,

  PositionID INT,

  SalaryType nvarchar(10),

  Salary decimal(9,2)

  CHECK (Salary < 150000.00)

  );

这里我有一个CHECK 子句,它与Salary字段关联。这是一个字段级别的约束。如果你创建一个字段级别的约束,那么你在你的检查约束的逻辑表达式中只能使用这个字段名称。这个检查约束只允许Salary字段低于$150,000.00。当我的表创建之后,这个CHECK约束也将被创建,并被赋予一个系统生成的约束名称。如果你想在一个CREATE TABLE操作期间命名你的检查约束,那么你可以运行下面的代码:

1 2 3 4 5  下一页

Tags:SQL Server 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接