第06章 存储过程、触发器和数据完整性.ppt

第06章 存储过程、触发器和数据完整性.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第06章 存储过程、触发器和数据完整性

第6章 存储过程、触发器和数据完整性 6.1 存储过程 6.2 触发器 6.3 数据完整性 6.1 存储过程 基本概念 创建存储过程 例:创建一个最简单的存储过程: 例:带参数的存储过程: 执行存储过程 例:执行带参数的sp_getemp;2存储过程 存储过程的返回值和状态信息 存储过程的修改和删除 修改存储过程的语句是(一般格式): ALTER PROC[edure] procedure_name [ ; number ] [ @parameter data_type [ = default ], …?] AS sql_statement 删除存储过程的语句是: DROP PROC[edure] procedure_name 注意:删除存储过程的语句中不能指定序号。也就是说,该语句将同时删除同名的所有存储过程。 要用好存储过程 6.2 触发器 触发器的用途 触发器是依附于表的数据库对象 一个触发器和三部分内容有关: 定义触发器的表 激活触发器的数据操作语句 触发器要采取的动作 建立触发器的语句 例:建立一个简单的触发器。 插入视图和删除视图 删除类触发器 例:定义一个触发器,使得当删除仓库记录时,同时将所属所有职工记录的仓库号字段值置为空值NULL: 插入类触发器 例:对职工表的插入操作定义一个触发器,使得当插入职工记录时,检查相应的仓库元组是否存在,如果不存在则撤消所做的插入操作。 更新类触发器 例:对职工表的更新操作定义一个触发器,使得当职工变换所属仓库时,检查相应的仓库元组是否存在,如果不存在则撤消所做的更新操作,如果新的仓库号是WH2则将工资提高10%。 6.3 数据完整性 在第3章已经介绍了在关系数据模型上数据完整性的概念和规则;在第5章介绍了CREATE TABLE语句中可以实现的一些完整性约束。这里介绍与数据完整性有关的其他一些内容。 . 6.3.1 规则 在CREATE TABLE语句中可以使用CHECK子句实现一些用户定义完整性或域完整性约束。另外还可以通过“规则”(RULE)来实现用户定义完整性或域完整性。 CHECK约束固定在一个表的一个列上,它只在指定的列上起作用。如果在不同的列上有相同的约束条件,则可以使用规则,一个规则可以绑定在多个列上。 规则是一种独立的数据库对象,它可以绑定到一个列上来约束该列的取值范围等。 建立规则的命令是: CREATE RULE rule AS condition_expression rule:给出新建规则的名称; condition_expression:定义规则的条件,可以是任何有效的表达式,并且可以包含诸如算术运算符、关系运算符和谓词(如IN、LIKE、BETWEEN)之类的元素。 注意:规则不能引用列或其它数据库对象,规则可以包含不引用数据库对象的内置函数;condition_expression需要包含一个变量,变量的前面有一个@前缀;该表达式引用通过 UPDATE或INSERT语句输入或传递的字段值。 例如,规定某类数值对象的取值范围是1000~3000,则可以定义规则: CREATE RULE range_rule AS @range=1000 AND @range=3000 规则的绑定 规则是独立的数据库对象,要通过系统存储过程sp_bindrule把规则绑定到数据列上,该系统存储过程的格式是: sp_bindrule rulename , objname [ , futureonly ] rulename是用CREATE RULE命令建立的规则名; objname指出要绑定的表和列或用户定义的数据类型; futureonly,当绑定规则到用户定义的数据类型时可以选用此项,该选项是禁止已经存在的、用用户定义数据类型定义的列遵循新的规则。 例如,将规则range_rule绑定到职工表的工资列上 sp_bindrule range_rule,‘职工.工资’ 使用CREATE RULE命令创建的规则对象,可以绑定到多个数据列上,即一个规则可以反复使用。 绑定的消除和规则的删除 绑定到数据列上的规则可以去除,相应的系统存储过程是sp_unbindrule。例如,取消绑定在职工表工资列上的规则可以使用如下语句: sp_unbindrule 职工.工资 规则可以删除,删除规则的命令是DROP RULE,但是删除规则之前,必须首先解除所有的绑定。 6.3.2 默认值 在CREATE TABLE命令中可以使用DEFAULT约束为数据列定义默认值。这里介绍另外一种方法:使用CREATE DEFAULT命令创建默认值对象。 CREATE D

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档