- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.2.1 触发器的类型 1.DML触发器 当数据库中发生数据操纵语言(DML)事件时将调用DML触发器。一般情况下,DML事件包括对表或视图的INSERT语句、UPDATE语句和DELETE语句,因而DML触发器也可分为三种类型:INSERT、UPDATE和DELETE。 利用DML触发器可以方便地保持数据库中数据的完整性。例如,对于PXSCJ数据库有XSB表、CJB表和KCB表,当插入某一学号的学生某一课程的成绩时,该学号应是XSB表中已存在的,课程号应是KCB表中已存在的,此时,可通过定义INSERT触发器实现上述功能。通过DML触发器可以实现多个表间数据的一致性。 2.DDL触发器 DDL触发器也是由相应的事件触发的,但DDL触发器触发的事件是数据定义语句(DDL)。这些语句主要是以CREATE、ALTER、DROP等关键字开头的语句。DDL触发器的主要作用是执行管理操作,如审核系统、控制数据库的操作等。通常情况下,DDL触发器主要用于以下一些操作需求:防止对数据库架构进行某些修改;希望数据库中发生某些变化以利于相应数据库架构中的更改;记录数据库架构中的更改或事件。DDL触发器只在响应由T-SQL语法所指定的DDL事件时才会触发。 1.创建DML触发器 语法格式: CREATE TRIGGER [ 架构名. ] 触发器名 ON { 表 | 视图 } /*指定操作对象*/ [ WITH ENCRYPTION ] /*说明是否采用加密方式*/ { FOR |AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] /*说明该触发器不用于复制*/ AS { SQL语句 [ ; ] [ ... ] | EXTERNAL NAME 程序集名.类名.方法名 } 1)语句说明 (1)触发器名:用于指定触发器名,触发器名必须符合标识符规则,并且在数据库中必须唯一。“架构名”是DML触发器所属架构的名称。对于DDL触发器,无法指定架构名。 (2)表 | 视图:指在其上执行触发器的表或视图,有时称为触发器表或触发器视图。 (3)AFTER:用于说明触发器在指定操作都成功执行后触发,如AFTER INSERT表示向表中插入数据时激活触发器。不能在视图上定义AFTER触发器。 (4)INSTEAD OF:指定用DML触发器中的操作代替触发语句的操作。 (5){ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }:指定激活触发器的语句的类型,必须至少指定一个选项。在触发器定义中允许使用上述选项的任意顺序组合。 (6)WITH APPEND:指定应该再添加一个现有类型的触发器。 (7)SQL语句:触发器的T-SQL语句,可以有一条或多条语句,指定DML触发器触发后将要执行的动作。 2)触发器说明 触发器有以下几点说明: (1)触发器中使用的特殊表。执行触发器时,系统创建了两个特殊的临时表inserted表和deleted表,下面介绍一下这两个表的内容。 ???inserted表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted表中。 ???deleted表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录存放到deleted表中。 (2)创建DML触发器的说明。创建DML触发器时主要有以下几点说明: ① CREATE TRIGGER 语句必须是批处理中的第一条语句,并且只能应用到一个表中。 ② DML触发器只能在当前的数据库中创建,但可以引用当前数据库的外部对象。 ③ 创建DML触发器的权限默认分配给表的所有者。 ④ 在同一CREATE TRIGGER语句中,可以为多种操作(如INSERT和UPDATE)定义相同的触发器操作。 ⑤ 不能对临时表或系统表创建DML触发器。 ⑥ 对于含有DELETE或UPDATE操作定义的外键表,不能使用INSTEAD OF DELETE和INSTEAD OF UPDATE触发器。 ⑦ TRUNCATE TABLE语句虽然能够删除表中的记录,但它不会触发DELETE触发器。 ⑧ 在触发器内可以指定任意的SET语句,所选择的SET选项在触发器执行期间有效,并在触发器执行完后恢复到以前的设置。 ⑨ DML触发器最大的用途是返回行级数据的完整性,而不是返回结果,所以应当尽量避免返回任何结果集。 ⑩ CREATE TRIGGER权限默认授予定义触发器的表所有者、sysadmin固定服务器角色成员、db_ow
您可能关注的文档
- 第6课--动荡的春秋时期.ppt
- 第6课《爬山虎的脚》PPT课件.ppt
- 第6课洋务运动课件上课梁永林.ppt
- 第6课-美丽的印纹.ppt
- 第6课春秋五霸与战国七雄.ppt
- 第6课罗马法的起源与发展 PPT.ppt
- 第7-2章人格障碍患者的护理.ppt
- 第6课戊戌变法课件02.ppt
- 第7章 C#图形图像编程.ppt
- 第6课:古代的科技文化(共24张PPT).ppt
- 2025年斜巷运输安全管理规定范本(2篇) .pdf
- 2025年新乡市事业单位重塑性改革方案 .pdf
- 2025年高速公路扩能工程建设项目策划工地标准化建设管理办法_图文 .pdf
- F202525【复试】2025年延边大学202504技术经济及管理《加试人力资源管理.pdf
- F202508【复试】2025年国防科技大学2025网络空间安全《复试F2025计算机完整版.pdf
- 2025进出口办理流程 .pdf
- 2025年后勤服务保障中心采购管理办法 .pdf
- 2025年危货运输企业安全生产管理制度汇编 .pdf
- 2025年安全生产责任制和安全生产奖惩制度(2篇) .pdf
- 2025年出勤率与绩效挂钩制度 .pdf
文档评论(0)