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

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

 2009-04-16 10:27:11 来源:WEB开发网   
核心提示:有许多校验数据和业务规则是否匹配的方法,在应用程序代码中可以强制实施数据校验,使用检查约束验证SQL Server中的数据,也可以由数据库引擎执行数据校验,根据校验的方法不同,创建这个表时也会创建CHECK约束,约束名由系统自动生成,规则需求将确定你的应用程序该如何正确地以及该在哪里校验数据,本文将向你介绍如何使用数据

有许多校验数据和业务规则是否匹配的方法,在应用程序代码中可以强制实施数据校验,也可以由数据库引擎执行数据校验。根据校验的方法不同,规则需求将确定你的应用程序该如何正确地以及该在哪里校验数据,本文将向你介绍如何使用数据库“检查约束”校验SQLServer中的数据。

什么是检查约束?

检查约束是一个识别SQLServer表中每行可接受的列值的规则,检查约束帮助实施域的完整性,域完整性定义了数据库表中列的有效值,检查

约束可以验证单列的域完整性,也可以验证多列的域完整性,在单个列上可以有多个检查约束,如果插入或更新的数据违反了检查约束,数据

库引擎将暂时停止INSERT和UPDATE操作。

检查约束由逻辑表达式构成,逻辑表达式可能是单个表达式,如“Salary<200000.00”,也可能是多个表达式,如“RentalDate>GETDATE

()andRentalDate

中的数据,检查约束是基于列的,因此,即便表中某列的检查约束没有通过,也不会影响到表中其它列的INSERT和UPDATE操作,检查约束可以在列级创建,也可以在表级创建。

在CREATETABLE语句中创建检查约束

创建检查约束的一个方法就是在创建表的时候创建,下面是一个简单的CREATETABLE脚本,它包含了创建一个检查约束的代码:

CREATETABLEdbo.Payroll
 

(

IDintPRIMARYKEY,

PositionIDINT,

SalaryTypenvarchar(10),

Salarydecimal(9,2)

CHECK(Salary<150000.00)

);

这里的CHECK子句关联了Salary列,这是一个列级的约束,如果你创建了一个列级约束,你只能在检查约束的逻辑表达式中使用列名,这里的检查约束列就只允许Salary列的值小于150000。创建这个表时也会创建CHECK约束,约束名由系统自动生成,如果你想在CREATETABLE操作时命名你的检查约束,代码就可以变成下面这样:

1 2 3 4 5  下一页

Tags:使用 检查 约束

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