《数据库原理与应用》10.触发器的创建和使用.ppt
《《数据库原理与应用》10.触发器的创建和使用.ppt》由会员分享,可在线阅读,更多相关《《数据库原理与应用》10.触发器的创建和使用.ppt(34页珍藏版)》请在三一办公上搜索。
1、孙 发 勤 扬州大学新闻与传媒学院Y,数据库原理与应用第十讲 触发器创建和使用,1、创建触发器2、查看、修改和删除触发器3、触发器的应用,本讲主要内容,触发器,触发器是一种特殊类型的存储过程,它不同于前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直接调用。触发器是一个功能强大的工具,它使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。,SQL SERVER可以检查数据完整性的还有什么情况?比如前面讲过的CHECK约束。但是,与CHECK约束相比,触发器可以强制实现更加复杂的
2、数据完整性,而且可以参考其他表的字段。注意:触发器可以扩展SQL Server约束、默认值和规则的完整性检查逻辑,但只要约束和默认值提供了全部所需的功能,就应使用约束和默认值。,触发器可以使用T一SQL语句进行复杂的逻辑处理,它基于一个表创建,但是可以对多个表进行操作,因此常常用于复杂的业务规则。工般可以使用触发器完成如下功能,触发器的作用,1、级联修改数据库中相关的表。例如:在数据库company中有两个表project和customer,表project中包含项目信息和项目的合作客户名,而customer表中则存储所有客户的信息。如果删除了customer表中的某一客户,如张三,那么在pr
3、oject表中所有和该客户有关的项目记录都应该做相应的调整。如在project表中将所有合作客户为张三的字段改为null或者其它值,或者删除整条和张三有关的记录。而使用触发器就可以实现这样的功能。,2、执行比核查约束更为复杂的约束操作。在触发器中可以书写更复杂的T一SQL语句,例如可以引用多个表,并使用if.else等语句做更复杂的检查。3、拒绝或回滚违反引用完整性的操作。检查对数据表的操作是否违反引用完整性,并选择相应的操作。,4、比较表修改前后数据之间的差别,并根据差别采取相应的操作。例如:若想规定每次工资的变动幅度不能超过40%,使用触发器可以将修改后的表数据和修改前的表数据进行比较,若
4、超出40%,可以回滚该修改操作。,触发器的类型,触发器可以分为五种类型:Update触发器:在表上进行更新操作时触发。Insert触发器:在表上进行更新操作时触发Delete触发器:在表上进行更新操作时触发Instead of触发器:不执行插入、更新或删除操作时,将触发Instead of触发器。After触发器:在一个触发动作发生之后激发,并提供一种机制以便控制多个触发器的执行顺序。,AFTER要求只有执行某一操作(INSERT,UPDATE、DELETE)之后触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER触发器,可以定义哪一个触发器被最先触发,哪一个
5、被最后触发,通常使用系统过程sp settriggerorder来完成此任务。,INSTEAD OF触发器表示并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身。既可在表上定义INSTEAD OF触发器,也可以在视图上定义INSTEAD OF触发器,但对同一操作只能定义一个INSTEAD OF触发器。,触发器主要优点如下:,触发器是自动的:当对表中的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。触发器可以通过数据库中的相关表进行层叠更改。触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。,创建触发器,创建触发器应该考
6、虑以下几个问题:CREATE TRIGGER 语句必须是批处理中的第一个语句。创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。触发器为数据库对象,其名称必须遵循标识符的命名规则。虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器。虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临时表。,在含有用 DELETE 或 UPDATE 操作定义的外键的表中,不能定义 INSTEAD OF 和 INSTEAD OF UPDATE 触发器。虽然 TRUNCATE TABLE 语句类似于没有 WHERE 子句(用于删除行)的 DELETE 语句,但它并不会引发
7、DELETE 触发器,因为 TRUNCATE TABLE 语句没有记录。WRITETEXT 语句不会引发 INSERT 或 UPDATE 触发器。当创建一个触发器时必须指定:名称;在其上定义触发器的表;触发器将何时激发;激活触发器的数据修改语句。,下面的语句不可以用于创建触发器:Alter Database、Create Database、Disk Init、Disk Resize、Drop Database、Load Database、Load Log、Reconfigure、RestoreDatabase、Restore Log.当创建一个触发器时必须指定:(1)名称;(2)在其上定义触发
8、器的表;(3)触发器将何时激发;(4)激活触发器的数据修改语句。,1.使用企业管理器创建触发器,在企业管理器中,展开指定的服务器和数据库项,然后展开要在其上创建触发器的表所在的数据库,用右键单击该表,从弹出的快捷菜单中选择所有任务子菜单下的管理触发器选项,则会出现触发器属性对话框。在该对话框中,在名称文本框中选择新建,然后在文本框中输入触发器文本。单击“检查语法”按钮,则可以检查语法是否正确。单击“应用”按钮,则在名称下拉列表中会有新创建的触发器名称。最后,单击“确定”按钮,即可关闭该对话框,成功创建触发器。,2.使用CREATE TRIGGER命令创建触发器,其语法形式如下:CREATE T
9、RIGGER trigger_name ONtable|view WITHENCRYPTION FOR|AFTER|INSTEAD OF DELETE,INSERT,UPDATE WITHAPPENDNOTFORREPLICATIONAS,IFUPDATE(column)AND|ORUPDATE(column).n|IF(COLUMNS_UPDATED()bitwise_operatorupdated_bitmask)comparison_operatorcolumn_bitmask.n sql_statement.n,各参数的说明如下:,Trigger_ame:是用户要创建的触发器的名字。触
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理与应用 数据库 原理 应用 10. 触发器 创建 使用
链接地址:https://www.31ppt.com/p-5898630.html