数据库中规则的应用.doc_第1页
数据库中规则的应用.doc_第2页
数据库中规则的应用.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

规则的概念:规则(Rules)是用于执行一些与检查约束相同的功能。检查约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个检查约束。检查约束可以在CREATE TABLE语句中定义,而规则作为独立的对象创建,然后绑定在指定的列上。规则也是维护数据库中数据完整性的一种手段,使用它可以避免表中出现不符合逻辑的数据,例如工资小于0。创建规则: 使用CREATE RULE语句可以创建规则,其语法结构如下:CREATERULE .AS规则表达式中可以包含算术运算符、关系运算符和谓词(例如IN、LIKE、BETWEEN等)。例:创建一个规则SexRule,指定变量sex的取值只能为男或女,代码如下:CREATERULE SexRuleASsex IN (男, 女)例: 创建一个规则WageRule,指定变量wage的取值范围为050000,代码如下:CREATERULE WageRuleASwage BETWEEN 0 AND 50000 绑定规则:绑定规则是指将已经存在的规则应用到列或用户自定义的数据类型中。使用存储过程sp_bindrule可以将规则绑定到列或用户自定义的数据类型,语法如下:sp_bindrule rulename = 规则名, objname = 对象名例: 规则SexRule绑定到表Employees的列Sex上的语句如下:USE HrSystemGOEXECsp_bindrule SexRule, Employees.SexGO执行的结果如下:已将规则绑定到表的列。例:下面通过一个INSERT语句验证规则的应用效果。执行下面的INSERT语句,向表Employees中插入一条记录。USEHrSystemGOINSERTINTO Employees (Emp_name, Sex, Title, Wage,IdCard,Dep_id)VALUES(小李, 无, 职员, 10000, 110123xxxx, 1)GO注意,INSERT语句设置列Sex的值为“无”。因为列Sex绑定到规则SexRule,而在规则SexRule中规定列值只能是“男”或“女”。因此,执行INSERT语句的结果如下:消息513,级别16,状态0,第2行列的插入或更新与先前的CREATE RULE语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库HrSystem,表dbo.Employees,列Sex。语句已终止。返回结果中提示INSERT语句中指定的列Sex的指定值(无)不满足之前绑定的规则。解除规则绑定:使用存储过程sp_unbindrule可以解除规则的绑定,它的基本语法如下:sp_unbindrule objname = 对象名对象名可以是表名和列名,也可以是自定义的数据类型。 例:使用存储过程sp_unbindrule取消表Employees的列Sex上绑定的规则,具体语句如下:USE HrSystemGOEXECsp_unbindrule Employees.SexGO执行的结果如下:(所影响的行数为1 行)已从表的列上解除了规则的绑定。删除规则: 在SQL Server Management Studio中,右键单击指定的规则,在弹出菜单中选择“删除”项则删除指定的规则对象。也可以使用DROP RULE语句从当前数据库中删除一个或多个规则,语法如下:DROPRULE 规则名1 ,规则名2, .,规则名n在删除规则前,需要调用sp_unbindrule存储过程解除该规则的绑定。例: 使用DROP RULE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论