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