收藏 分销(赏)

十次触发器.ppt

上传人:a199****6536 文档编号:1654818 上传时间:2024-05-07 格式:PPT 页数:27 大小:1.82MB
下载 相关 举报
十次触发器.ppt_第1页
第1页 / 共27页
十次触发器.ppt_第2页
第2页 / 共27页
十次触发器.ppt_第3页
第3页 / 共27页
十次触发器.ppt_第4页
第4页 / 共27页
十次触发器.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、SQL SERVER 2000数据库应用数据库应用主主讲教教师:李灯登李灯登第十次第十次触发器触发器第一节目标第一节目标理解触发器的概念掌握插入型触发器的使用触发器的概念触发器的概念 触发器是一种特殊的存储过程触发器是一种特殊的存储过程触发器是一种特殊的存储过程触发器是一种特殊的存储过程,它被分配给某个特,它被分配给某个特定的表。当对这个表进行插入、更新或删除操作时,定的表。当对这个表进行插入、更新或删除操作时,自动调用触发器执行触发器里规定的操作自动调用触发器执行触发器里规定的操作.触发器是确保数据完整性和一致性的基本有效的方触发器是确保数据完整性和一致性的基本有效的方法。法。和表相关联和表

2、相关联,可以看作是可以看作是表的一部分表的一部分表的一部分表的一部分;不能直接引用不能直接引用,通过通过insert/update/deleteinsert/update/deleteinsert/update/deleteinsert/update/delete自动激活自动激活;属于事务机制属于事务机制;同一类型的触发器在表上可以有多个同一类型的触发器在表上可以有多个触发器的种类触发器的种类插入型触发器删除型触发器更新型触发器一个表上可以定义多种类型的触发器工作原理工作原理 SQL ServerSQL Server为每个触发器都创建了两个专用临时表:为每个触发器都创建了两个专用临时表:INS

3、ERTEDINSERTEDINSERTEDINSERTED表表表表和和DELETEDDELETEDDELETEDDELETED表表表表。这两个表的结构与激发触发。这两个表的结构与激发触发器的表的结构相同。用户不能对它们进行修改,只能器的表的结构相同。用户不能对它们进行修改,只能在触发器程序中查询表中的内容。触发器执行完毕后,在触发器程序中查询表中的内容。触发器执行完毕后,与该触发器相关的这两个表也会被删除。与该触发器相关的这两个表也会被删除。当当执执行行INSERTINSERT语语句句时时,INSERTEDINSERTED表表存存放放要要向向表表中中插插入的所有行。入的所有行。当当执执行行DE

4、LETEDELETE语语句句时时,DELETEDDELETED表表存存放放要要从从表表中中删删除的所有行。除的所有行。当当执执行行UPDATEUPDATE语语句句时时,相相当当于于先先执执行行一一个个DELETEDELETE操操作作,再再执执行行一一个个INSERTINSERT操操作作。所所以以旧旧的的行行被被移移动动到到DELETEDDELETED表,而新的行插入到表,而新的行插入到INSERTEDINSERTED表。表。触发器的优点触发器的优点 1 1、不接受用户参数,也不返回用户参数;事件驱、不接受用户参数,也不返回用户参数;事件驱 动,自动调用;存储在表上。动,自动调用;存储在表上。2

5、 2、数据库中跨越相关表的级联修改。、数据库中跨越相关表的级联修改。对数据库中的相关表进行级联更新和删除对数据库中的相关表进行级联更新和删除 3 3、强制比、强制比CheckCheck约束更复杂的数据完整性。约束更复杂的数据完整性。可以引用其他表中的列可以引用其他表中的列 创建触发器创建触发器 语法:语法:语法:语法:create triggercreate trigger 触发器名触发器名 onon 表名表名 for delete/insert/updatefor delete/insert/update as as 触发器要执行的操作触发器要执行的操作演示演示insertinsert触发器

6、触发器1:当用户向表插入信息时,给出提示信息2:向定单表插入记录,更新产品表中的库存数量触发触发insertinsert触发器触发器向定单表里插入一条数据,自动触发insert触发 InsertInsert触发器触发器继续创建第2个insert触发器。当向定单表插入记录时,把产品表和定单表所有信息显示出来第二节课目标第二节课目标掌握删除型触发器的使用掌握更新型触发器的使用创建创建deletedelete触发器触发器DELETE触发器:当创建该触发器的表执行删除操作时,触发该触发器执行其定义的操作.例:1:当取消定单时,产品库存数量要恢复THANK YOUSUCCESS2024/4/18 周四1

7、4可编辑创建创建updateupdate触发器触发器UPDATEUPDATE触发器触发器:当创建该触发器的表执行当创建该触发器的表执行UPDATEUPDATE操作时操作时,触发该触发器触发该触发器,执行其定义的操作执行其定义的操作.例例:当对定单表进行当对定单表进行updateupdate操作时,产品表的库操作时,产品表的库存也要做相应更改存也要做相应更改第三节目标第三节目标掌握修改,删除触发器掌握启用,禁用触发器了解事务的概念和应用修改触发器修改触发器语法:语法:语法:语法:alter triggeralter triggeralter triggeralter trigger 触发器名触发

8、器名触发器名触发器名 onononon 表名表名表名表名 forforforfor delete/insert/update delete/insert/update delete/insert/update delete/insert/update asasasas 触发器要执行的操作触发器要执行的操作触发器要执行的操作触发器要执行的操作禁用触发器禁用触发器语法:语法:Alter tableAlter table 表名表名 disable triggerdisable trigger 触发器名 【例例】禁用禁用empl_deleteempl_delete触发器触发器 alter table

9、employeesalter table employees disable trigger empl_delete disable trigger empl_delete 启用触发器启用触发器语法:语法:语法:语法:Alter tableAlter table 表名 enable triggerenable trigger 触发器名【例例】启用启用empl_deleteempl_delete触发器触发器 alter table xs_kcalter table xs_kc enable trigger empl_delete enable trigger empl_delete删除触发器删除

10、触发器语法:语法:语法:语法:drop triggerdrop trigger 触发器名【例例】删除名为删除名为t_update的触发器的触发器 drop triggerdrop trigger t_updatet_update事务的概念事务的概念事务概述事务概述事务概述事务概述事务保证多个数据更改操作作为一个整体单元处理。事务保证多个数据更改操作作为一个整体单元处理。事务的特性事务的特性事务的特性事务的特性(ACID)(ACID)(ACID)(ACID)原子性:事务必须是完全成功或完全失败;原子性:事务必须是完全成功或完全失败;一致性:事务必须强制所有数据一致性规则。一致性:事务必须强制所有

11、数据一致性规则。隔离性:所有修改数据的事务都必须彼此隔离开来。隔离性:所有修改数据的事务都必须彼此隔离开来。永久性:事务所做的更改是永久而稳固的永久性:事务所做的更改是永久而稳固的.事务控制命令事务控制命令begin transactionbegin transaction 开始事务开始事务commit trancommit tran 提交事务提交事务rollback tranrollback tran 回滚事务回滚事务例例:begin tran begin tran -事务开始事务开始delete from xs where sid=1delete from xs where sid=1co

12、mmit tran commit tran -提交事务提交事务,操作成功操作成功begin tranbegin trandelete from xs where sid=1001delete from xs where sid=1001rollback tran rollback tran -回滚事务回滚事务,操作失败操作失败SAVE TRANSAVE TRAN命令命令SAVE TRANSAVE TRAN命令允许在事务中设置保存点命令允许在事务中设置保存点,回滚时可以只回滚时可以只回滚到保存点回滚到保存点,而不用回滚整个事务而不用回滚整个事务.例例:begin tranbegin tranup

13、date xs set sname=hello where sid=1001update xs set sname=hello where sid=1001save tran sp save tran sp -设置保存点设置保存点delete from xs where sid=1001delete from xs where sid=1001rollback tran sp rollback tran sp -回滚到保存点回滚到保存点举例举例:银行系统事务应用银行系统事务应用 create proc proc_bankcreate proc proc_bankaccounts char(14

14、),price moneyaccounts char(14),price moneyASASBEGINBEGINbegin tranbegin tranupdate update 帐户表帐户表 set set 帐户余额帐户余额=帐户余额帐户余额-price-price where where 帐号帐号=accounts=accountsif error0 if error0 rollback tranrollback tranelseelsecommit trancommit tranEND END 在触发器里应用事务在触发器里应用事务创建触发器,不允许修改指定的列创建触发器,不允许修改指定的

15、列Create trigger t_updateCreate trigger t_updateOn productsOn productsFor updateFor updateasasIf update(price)If update(price)Begin Begin Print(Print(你没有权限修改单价你没有权限修改单价!)!)Rollback transactionRollback transactionRollback transactionRollback transactionendendThank you very much!Thank you very much!THANK YOUSUCCESS2024/4/18 周四27可编辑

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服