[项目08.ppt

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

项目八 公司管理数据库系统中 触发器的使用 终极目标:会利用触发器保证公司管理数据库系统数据的完整性 一、促成目标 1.能正确理解触发器的概念、功能和类型 2.会使用企业管理器和Transact-SQL语句管理触发器 二、工作任务 利用触发器操作companyinfo数据库系统的数据,从而达到简化数据处理操作和提高数据安全性的目的。具体要求如下: 1.对p_order表创建名为reminder的触发器,当用户向p_order表中插入或修改记录时,向客户端发送一条提示消息:修改数据???。 2.对employee表创建名为emp_updtri的触发器,其功能是:若对雇员ID和姓名修改时,则给出“此数据未经许可不能修改!!! “的提示信息。 (一)触发器的概念 触发器是一种特殊类型的存储过程,一般存储过程通过用存储过程名称被直接调用而执行,而触发器主要是通过事件触发而被执行,触发器是一个功能强大的工具,它与表紧密相连,在表中数据发生变化时自动强制执行。触发器可以用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。 触发器的种类 (1)AFTER触发器:这类触发器在数据修改完成后被激活执行。其执行顺序为: 数据表约束检查 修改表总数据 激活触发器 (2) INSTEAD OF触发器:这类触发器会取代原来要进行的操作,在数据更改之前发生,数据如何更改完全取决于触发器的内容,其执行顺序为: 激活触发器 若触发器涉及数据更改,则检查表约束 注: INSTEAD OF触发器能够应用表及视图,而after触发器只能应用于表。 使用触发器的限制 l?CREATE TRIGGER语句必须是批处理的第一个语句;并且只能应用到一个表中。 l? 表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它用户。 l?? 触发器是数据库对象,所以其命名必须符合命名规则。 l?触发器只能创建在当前数据库中,但触发器可以引用当前数据库的外部对象。 l?一个触发器只能对应一个表,这是由触发器的机制决定的。 l?触发器不能返回任何结果,为了阻止从触发器返回结果,不要在触发器定义中包含SELECT语句或变量赋值。 创建触发器时需指定 名称。 在其上定义触发器的表。 触发器将何时激发。 激活触发器的数据修改语句。有效选项为 INSERT、UPDATE 或 DELETE。多个数据修改语句可激活同一个触发器。 执行触发操作的编程语句。 使用Transact-SQL语句创建触发器 语法: CREATE TRIGGER trigger_name ON 表名或视图名 {FOR | AFTER | INSTEAD OF } {INSERT[,] | UPDATE[,] |DELETE } AS [IF UPDATE (列名1) [{AND | OR } UPDATE(列名2)[…n] sql语句 参数: AFTER:表示只有在执行了指定的操作(INSERT, DELETE, UPDATE)之后触发器才被激活,执行触发器中的SQL语句。 INSTEAD OF:指定执行触发器而不是执行触发 SQL 语句,从而替代触发语句的操作。 INSERT | UPDATE |DELETE:用来指明哪种数据操作将激活触发器。 IF UPDATE(列名):用来测定对某一确定列是插入操作还是更新操作,但不与删除操作用在一起。 1、幻表: INSERTED表 和DELETED表 2、使用 RAISERROR返回信息 返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。 语法 RAISERROR (消息字符串 ,严重度,状态) 3、事 务 控 制 事务是将一系列操作变成独立的逻辑工作单元,其中任何一个语句执行时出错,系统都会自动回滚到事务开始前的状态,避免垃圾数据的产生。事务具有以下属性: (1)原子性:意味着对数据的修改,要么全都执行,要么全都不执行。 (2)一致性:完成事务后,所有的数据必须保持一致状态。 (3)隔离性:在并发环境中,各个事务是独立的。如果进行事务回滚操作,它能够重新装载起始数据,回到开始事务时刻的状态。 (4)持久性:提交事务后,它对于系统的影响是永久性的。即使出现系统故障,事务对数据的修改也将一直保持。 事务控制语句有: (1)BEGIN TRA

文档评论(0)

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

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

1亿VIP精品文档

相关文档