用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

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

时间:2014-11-30  来源:互联网  作者:佚名

  什么是检查约束?

  检查约束是一个规则,它确认一个SQL(SQL Server培训 mySQL培训 ) 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操作期间命名你的检查约束,那么你可以运行下面的代码


   CREATE TABLE dbo.Payroll
  (
  ID int PRIMARY KEY,
   PositionID INT,
  SalaryType nvarchar(10),
  Salary decimal(9,2)
  CONSTRAINT CK_Payroll_Salary CHECK (Salary < 150000.00)
   );

  这里我命名了我的检查约束CK_Payroll_Salary。

  上面的每个例子都创建了一个单独的条件字段检查约束。一个检查约束表达式可以有多个条件。下面是一个例子,它显示了一个有多个条件的检查约束:


   CREATE TABLE dbo.Payroll
  (
  ID int PRIMARY KEY,
   PositionID INT,
  SalaryType nvarchar(10),
  Salary decimal(9,2)
  CONSTRAINT CK_Payroll_Salary
   CHECK (Salary > 10.00 and Salary < 150000.00)
  );

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门