网站大量收购独家精品文档,联系QQ:2885784924

[工学]数据库08.ppt

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 15.1 概述 触发器是一种特殊类型的存储过程,它在插入、删除或修改指定表中的数据时触发执行。使用触发器可大大增强应用程序的健壮性、数据库的可恢复性和可管理性。 SQL Server 2005提供2类触发器: DML触发器:在执行数据操纵语言(insert、update、delete)时被调用触发。 DDL触发器:其用于执行数据库管理任务,由相应的事件触发后执行,包括create、alter、drop语句。 15.2 创建DML触发器 1.使用SQL Server管理控制器创建 15.2 创建DML触发器 2.使用T-SQL 语句创建DML触发器 CREATE TRIGGER 触发器名 ON {表名 | 视图名} [WITH ENCRYPTION] {{{FOR | AFTER | INSTEAD OF}{[INSERT][,][UPDATE] [,][DELETE]}[WITH APPEND] [NOT FOR REPLICATION] AS [{IF UPDATE(column) [{AND | OR} UPDATE(column)] […n] | IF(COLUMNS_UPDATED() {bitwise_operator} updated_bitmask) {comparison_operator} column_bitmask […n] }] sql_statement […n] }} 加密 在指定操作成功后激发 指定执行触发器 兼容低版本用 复制进程更改表时不执行该触发器 触发器的条件和操作 测试在指定的列上进行INSERT或DELETE操作 测试是否插入或更新了提及的列 15.2 创建DML触发器 例在数据库school中创建触发器trigop,在student表中添加、修改和删除记录时自动显示表中记录 15.3 inserted表和deleted表 在触发器执行时,会产生两个临时表,它们结构和触发器所在的表结构相同: inserted表用于存储INSERT和UPDATE语句所影响的行的副本,在执行上面语句时,新建行被同时添加到inserted表和触发器表中。 deleted表用于存储DELETE和UPDATE语句所影响行的副本,在执行上面语句时,行从触发器表中删除,传输到deleted表中。 15.3 inserted表和deleted表 例编写一段T-SQL语句说明inserted表和deleted表的作用 15.4 使用DML触发器 1.使用INSERT触发器 INSERT触发器常用来更新时间标记字段,或验证被触发器监控的字段中数据满足要求的标准,以确保数据的完整性。 当向数据库中插入数据时,该触发器将被触发执行。 15.4 使用DML触发器 例:建立触发器trigname,当向student表中插入数据时,如果出现姓名重复,则回滚事务。 运行结果: 15.4 使用DML触发器 例:建立触发器trigsex,当向student表中插入数据时,如果出现性别不正确,则提示错误信息。 运行结果: 15.4 使用DML触发器 2.使用UPDATE触发器 当一个有UPDATE触发器的表修改数据时,表中原来的记录被移到deleted表中,修改过的记录插入到inserted表。 15.4 使用DML触发器 例:建立修改触发器trigno,防止用户修改student表的学号。 运行结果: 15.4 使用DML触发器 例:建立触发器trigcopy,把student表中所有被修改的数据保存到studentdup表中作为历史数据。 运行结果: 15.4 使用DML触发器 3.使用DELETE触发器 当DELETE触发器被触发时,表中原来的记录被移到deleted表中。 该触发器常用于为防止删除一些不能删除的数据和实现数据表级联操作。 15.4 使用DML触发器 例:建立删除触发器trigclass,防止用户删除表student中所有95031班的学生。 运行结果: 15.4 使用DML触发器 例:建立触发器trigcopy1,把student表中所有被删除的数据保存到studentdup表中作为历史数据。 运行结果: 15.4 使用DML触发器 4.使用INSTEAD OF触发器 INSTEAD OF 触发器用来代替通常的触发动作,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执

文档评论(0)

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

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

1亿VIP精品文档

相关文档