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

sql精简版第910学时.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
{[INSERT], [UPDATE], [DELETE]}指定在表或视图上执行哪些修改语句时激活触发器的关键字 ENCRYPTION指定加密syscommnents表中含有CREATE TRIGGER语句正文文本的项 IF UPDATE指定对表内某列增加或修改内容时出发才起作用,可以指定两个以上列名前可以不加表名。IF子句中多个触发器动作可以放在BEGIN和END之间。 触发器 一种数据库对象 特殊的存储过程 按照业务规则构造,简化SQL Server程序设计 功能强大的工具,与表紧密相连 基于一个表创建,却可以操作多个表 可用来实现复杂的商业规则 整体为一个事务,如执行过程发生错误,则整个事务自动回滚 触发器 触发器定义 一种在数据表或视图被修改时自动执行的内嵌存储过程。 专用类型存储过程 捆绑到数据表或者视图上 通过事件触发 实现主码或外码所不能保证的复杂的参照完整性和数据一致性 它的执行不是由程序调用,也不是手工启动,而是由事件来触发 一般存储过程通过存储过程名字被直接调用 触发器的优势 比CHECK约束有更复杂的完整性。CHECK约束中不允许引用其他表中的列来完成检查工作,而触发器则可以引用其他表中的列来完成数据完整性的约束 使用自定义的错误信息。用户可通过使用触发器捕获破坏数据完整性的操作,并返回自定义的错误信息 实现数据库中多张表的级联修改。用户可通过触发器对数据库中的相关表进行级联修改 比较数据库修改前后数据的状态。触发器可评估由INSERT、UPDATE或DELETE语句引起的数据修改前后表的状态,并根据差异采取措施 触发器经常用于加强数据的完整性约束和业务规则等。 创建触发器 必须指明触发器名称、在触发器上定义的表、触发器将何时激发、激活触发器的数据修改语句、执行触发操作的编程语句 用对象资源管理器创建触发器 使用T-SQL语句创建触发器 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到 创建触发器 CREATE TRIGGER trigge_name ON {table | view} {FOR | AFTER |INSTEAD OF} {[INSERT],[UPDATE],[DELETE]} [WITH ENCRYPTION] AS IF UPDATE column_name [{and|or} UPDATE column_name) …] sql_statements trigger_name 触发器名称 table|view 执行触发器的表或视图,可以选择数据表或视图的所有者名称 AFTER|INSTEAD OF AFTER指定在对数据表的相关操作后,触发器被触发,如果仅指定FOR关键字,则AFTER为默认值 INSTEAD OF指定执行触发器而不是执行触发语句,从而替代触发语句的操作。 可为表或视图中的每个INSERT、UPDATE或DELETE语句定义INSTEAD OF触发器,但如果可更新的视图定义时使用了WITH CHECK OPTION选项,则不允许在该视图上定义INSTEAD OF触发器,除非使用ALTER VIEW删除该选项。 对于INSTEAD OF触发器,不允许在具有ON DELETE级联操作引用关系的表上使用DELETE选项,不允许在具有ON UPDATE级联操作引用关系的表上使用UPDATE选项 sql_statement定义触发器被触发后执行的动作,指定触发器执行的条件和动作 触发器条件——除了引起触发器执行的操作外的附加条件 触发器动作——指当前用户执行激发触发器的某种操作并 满足触发器的附加条件时,触发器所执行的动作 INSERT触发器 数据库student的表teacher_info上创建teacher_trigger1触发器,当执行INSERT操作时该触发器被触发(即向定义触发器的表中插入数据时将触发其触发器) USE student GO CREATE TRIGGER teacher_trigger1 ON teacher_info FOR INSERT AS RAISERROR(‘unauthorized’,10,1) 将错误信息显示在屏幕上,同时记录于日志中 指定FOR选项,默认为AFTER触发器,即触发器只有在触发SQL语句INSERT中指定的所有操作都已成功执行后才激发,也就是说即便出现错误码,用户仍能向数据表中插入数据。 如何能在实现触发器被执行的同时,取消触发触发器的SQL语句的操作? 数据库student的表teacher_info上创建teacher_trigger2触发器,当执行INSERT操作

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档