SqlServer规则

Posted javier520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer规则相关的知识,希望对你有一定的参考价值。

定义:规则时单独的SQLServer对象,可以关联到一个或几个表中的一列或几列。它可以使用多种方式来完成对数据值的校验,可以使用函数返回验证信息,也可以使用关键字BETWEEN,LIKE和IN完成对输入数据的检查。

规则的作用和CHECK约束的功能部分相同,在向表的某列 插入或更新数据时,用它来限制输入的新值的取值范围。

规则和CHECK约束的不同点:

  CHECK约束是用CREATE Table语句在创建表时指定的,而规则需要作为单独的数据库对象来实现。

  在一列上只能用一个规则,但可以使用多个CHECK约束。

  规则可以应用于多个列,还可以应用于用户自定义的数据类型,而CHECK约束只能应用于它定义的列。

语法:

  CREATE RULE rule_name

  AS

  condition_expression

例如:

create rule rule_score
as
@value between 0 and 100
--@value为变量  功能是位于0到100之间

sp_bindrule rule_score,NewSS.StuAge
--绑定到表的列上

创建规则后则立即在规则下面生成这一规则。

规则绑定到列上,需要用到系统存储过程sp_bindrule

打开列中NewSS.StuAge的属性且年龄输入超过100会报错技术图片

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-----------------------------------------------------------------------------------------------------------------------

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

解除和删除规则

删除规则 drop rule rule_score

但是删除之前应该先解绑规则

规则绑定在一个列上 sp_unbindrule ‘NewSS.Age‘

但是如果规则绑定多个列上的话,也是依依解绑再删除

 

以上是关于SqlServer规则的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver支持的字符集都有哪些

为啥此代码片段返回意外结果?

SQL Server - 将 varchar 转换为另一个排序规则(代码页)以修复字符编码

sqlserver-处理死锁

sqlserver 排序规则的问题

sqlserver排序规则