SQL Server2012 学习之(五) :规则与约束的用法与联系

规则和约束都能对数据表中的数据进行限定,较常用,两者之间存在着一些共同性和差异性,易混淆,因此本文着重三点:规则和约束各自的创建、规则和约束的联系、如何解除和删除

1.规则与约束的创建

规则是单独的SQL Server对象,可以关联到表中的一列或多列。在向表的某列插入或更新数据时,用它来限制输入的新值的取值范围。

 创建规则方法:

1.在新建查询中输入下图1内容,进行规则创建

2.按照图2将规则与列进行绑定

3.在编辑数据表的时候,如果含有规则的列检测到输入数据的不规范,则会像图3那样报错。

 



 

 

 

说完了规则,接下来介绍约束,约束适用于某一具体列,对该列的取值范围进行一个限定。

新建方法:数据库(以AdventureWorks为例)——>数据表StaffInformation——>下拉菜单“约束”项——>新建约束。这里创建了与规则对应列Age不同的列Agee,因为规则和约束不能用于同一列,否则会报错。

 


 

创建完后,StaffInformation中添加数据的时候就能看到,如果Agee数据不满足约束条件,也会报错。

 

 

 

2.规则与约束的关系(以一张图表示,图中说的很清晰明了,故不赘述)

 

 

 

3.规则的解除和删除

由于约束可以直接删除,因此不过多解释。规则是有跟列进行绑定的,因此如果用“droprule age" 这类的表达式删除规则是不可行的,需要用到解除规则的方法。


代码:

sp_unbindrule 'StaffInformation.age'

 

 

之后再执行 

drop ruleage   即可删除绑定