- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库基础及其应用计算机类李法春任务六课件教学.ppt
任务六 创建触发器 任务单 任务六 触发器 就本质而言,触发器也是一种存储过程,它是一种特殊类型的存储过程。 触发器只要满足一定的条件,它就可以触发完成各种简单和复杂的任务,可以帮助我们更好的维护数据库中数据的完整性。 6.1 创建触发器 6.1.1 触发器概述 1.触发器的概念 触发器是存储在服务器上的一组预先定义并编译好的用来实现某种特定功能的SQL语句,这些语句通过事件进行触发而被执行。 触发器与存储过程的区别 1)存储过程要通过EXECUTE语句调用来执行,而触发器是在指定的表中的数据发生变化时自动执行生效,唤醒调用触发器以响应INSERT、UPDATE或DELETE语句,不需要用户用语句显式调用。 2)触发器是针对数据表定义的,只能在数据表上创建触发器,当此表删除时,触发器会自动被删除。而存储过程是针对数据库定义的。 3)触发器不能带有参数,而存储过程可以带有参数执行。 2.触发器的作用 触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外触发器还有其它许多不同的功能: (1)强化约束 触发器能够实现比CHECK 语句更为复杂的约束。与CHECK约束不同,触发器可以引用其他表中的列。 (2)跟踪变化 触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。 (3)级联运行 触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。 (4)调用存储过程 为了响应数据库更新,触发器可以调用一个或多个存储过程。 3.触发器的触发条件 在建立触发器时,要指定触发条件,即对数据表进行何种操作就激活触发器,使其自动执行。 触发条件: INSERT UPDATE DELETE 6.1.2 创建触发器 1、利用企业管理器创建触发器 2、使用T-SQL语句创建触发器 1、使用企业管理器创建触发器 1)在企业管理器中,展开指定的服务器和数据库项。 2)展开要在其上创建触发器的表所在的数据库,用右键单击该表,从弹出的快捷菜单中选择“所有任务”子菜单下的“管理触发器”选项。 3)在对话框中,在名称文本框中选择新建,然后在文本框中输入触发器文本。 4)单击“检查语法”按钮,则可以检查语法是否正确。 5)单击“应用”按钮,则在名称下拉列表中会有新创建的触发器名称。 6)单击“确定”按钮,即可关闭该对话框。 示例 【例6-1】在netshop数据库的goods表中创建一个名为RIGGER_update的触发器,当用户对goods表中单价列内容进行修改时,则触发器给出提示信息。 触发器自动激活的演示 第一步:在SQL Server的查询分析器中输入如下命令: UPDATE goods SET 单价 = 单价*1.2 WHERE 商品ID=8 第二步:检查语句、执行语句,显示结果如下所示。 2. 使用T-SQL语句创建触发器 (1)触发器的类型 1)按触发器触发的条件分类 INSERT触发器:当INSERT触发器触发时,新的记录增加到触发器表和inserted表中。 DELETE触发器:当DELETE触发器触发时,被删除的记录放在deleted表中,该记录不再存在触发器表中。 UPDATE触发器:当对表进行修改记录时,将执行UPDATE触发器。对表修改记录实际上是先删除旧记录再插入新记录,所以执行UPDATE触发器相当于先执行DELETE触发器再执行INSERT触发器。 使用触发器过程中的两个临时表 这两个临时表由系统管理,用户不能对其进行修改,对用户来说是隐含的,它们位于系统的高速缓存中。 当触发器工作完成后,两个临时表会自动被删除。 两个表的结构与被操作表完全相同。 2)按触发器执行的时机分类 ①AFTER 触发器 该类型触发器要求只有执行某一操作(INSERT、 UPDATE、DELETE)之后触发器才被触发,且只能在表上定义。 可以同时对一个表定义多种类型(INSERT、 UPDATE、DELETE)触发器,还可以对一个表的一种类型触发器定义多个名字不同的触发器。它们都可以执行,执行顺序默认按照定义的先后顺序执行,也可以通过系统存储过程sp_settriggerorder指定第一的或最后一个要执行的触发器。 ② INSTEAD OF 2)按触发器执行的时机分类 ②INSTEAD OF 触发器。 并不执行其所定义的操作(INSERT、UPDATE、DELETE),而仅是执行触发器本身 既可在表上定义INSTEAD OF 触发器也可以在视图上定义,但INSTEAD OF 触发器对同一操作只能定义一个INSTEAD OF 触发器。 AFTER 触发器与INSTEAD OF 触发器的比较 (2)T
原创力文档


文档评论(0)