第11章触发器优秀PPT.ppt

上传人:石*** 文档编号:52224765 上传时间:2022-10-22 格式:PPT 页数:18 大小:2.89MB
返回 下载 相关 举报
第11章触发器优秀PPT.ppt_第1页
第1页 / 共18页
第11章触发器优秀PPT.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《第11章触发器优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第11章触发器优秀PPT.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第11章触发器章触发器现在学习的是第1页,共18页主要内容触发器概念、类型和结构inserted和deleted表建立、修改和删除触发器现在学习的是第2页,共18页触发器简介触发器触发器是一种特殊类型的存储过程,由一组SQL语句组成,触发器是依存于表和视图的数据库对象,在表执行修改操作(插入/更新/删除)时自动执行,即是通过事件进行触发而被执行的它有助于更好地维护数据库的完整性。现在学习的是第3页,共18页触发器类型AFTER触发器这种触发器将在数据变动(insert,update,delete操作)完成以后才触发。对变动的数据进行检查,如果发现错误,则拒绝或回滚变动的数据。只能在表上定义,

2、可以定义多个。INSTEAD OF触发器这种触发器将在数据变动以前被触发。并取代变动数据 的操作(insert,update,delete操作),转而去执行触发器定义的操作。即可在表上也可在视图上定义,对同一操作只能定义一个。现在学习的是第4页,共18页 触发器结构:触发器结构:事件UPDATEINSERTDELETE条件AFTERINSTEAD OF动作各种Transact-SQL语句现在学习的是第5页,共18页触发事件发生After 条件触发器执行示意图条件触发器执行示意图执行触发事件执行触发器动作触发事件发生Instead of 条件触发器执行示意图条件触发器执行示意图不执行触发事件执行

3、触发器动作现在学习的是第6页,共18页触发器中使用的特殊表INSERED表自动处理存放由于执行INSERT或UPDATE语句而要从表中插入的行DELETED表存放由于执行DELETE或UPDATE语句而要从表中删除的行作用可以利用这两个临时驻留内存的表测试数据的修改效果及设置触发器操作的条件现在学习的是第7页,共18页管理触发器使用SSMS创建、禁用、修改和删除触发器现在学习的是第8页,共18页管理触发器T-SQL语句创建触发器CREATE TRIGGER CREATE TRIGGER 触发器名触发器名ON ON 表表 视图视图FORFORAFTERAFTERINSTEAD OF INSERT

4、INSTEAD OF INSERTUPDATEUPDATEDELETEDELETEASASSQLSQL语句语句现在学习的是第9页,共18页任务任务在WebShop数据库中创建一个触发器,实现在生成订单时,即往Orders表中插入订单记录时进行如下检查。如果插入的订单中的商品的支付方式p_ID不存在或者下达订单的会员号c_ID不存在,必须取消订单插入操作,并返回一条错误消息。现在学习的是第10页,共18页CREATE TRIGGER tr_insertordersON OrdersFOR INSERT,UPDATEASDECLARE p_no CHAR(2)DECLARE c_no CHAR(1

5、2)SELECT p_no=Payments.p_IDFROM Payments,insertedWHERE Payments.p_ID=inserted.p_IDSELECT c_no=Customers.c_IDFROM Customers,insertedWHERE Customers.c_id=inserted.c_idIF p_no is NULL OR c_no is NULLBEGIN ROLLBACK TRANSACTION RAISERROR(不存在这样的会员号或支付方式号!,16,10)END现在学习的是第11页,共18页任务任务在WebShop数据库中创建一个触发器,实现

6、在商品类别表(types)中删除商品类别信息时,每次只能删除一条记录,并显示“*级联删除成功!”。现在学习的是第12页,共18页CREATE TRIGGER tr_deletetypesON TypesFOR DELETEDECLARE row INTSELECT row=ROWCOUNTIF row=0begin PRINT 没有删除记录没有删除记录 RETURNENDIF row1BEGIN ROLLBACK TRANSACTION RAISERROR(一次只能删除一条记录一次只能删除一条记录,16,10)RETURNENDDECLARE t_no CHAR(11)SELECT t_no=

7、t_ID FROM deleted DELETE Goods WHERE t_ID=t_noPRINT t_no+级联删除成功!级联删除成功!现在学习的是第13页,共18页会员在购买商品时所购买商品的详细信息存放在OrderDetails表中,而订单的总金额存放在Orders表中。在WebShop数据库中创建一个触发器,实现订单详情表中的商品信息发生变化时,自动更新订单表中的订单总金额。想一想想一想现在学习的是第14页,共18页CREATE TRIGGER tr_sum ON OrderDetailsFOR INSERT,UPDATEASBEGIN UPDATE Orders SET o_Su

8、m=(SELECT SUM(d_price*d_Number)FROM OrderDetails WHERE o_ID=(SELECT o_ID FROM inserted)WHERE o_ID=(SELECT o_ID FROM inserted)END现在学习的是第15页,共18页管理触发器T-SQL语句修改触发器ALTER TRIGGER ALTER TRIGGER 触发器名触发器名ON ON 表表 视图视图FORFORAFTERAFTERINSTEAD OF INSERTINSTEAD OF INSERTUPDATEUPDATEDELETEDELETEASASSQLSQL语句语句现在学

9、习的是第16页,共18页管理触发器查看触发器sp_helptrigger tabname=sp_helptrigger tabname=表名表名 ,triggertype triggertype=触发器类型触发器类型 sp_helptext objname=sp_helptext objname=对象名对象名删除触发器DROP TRIGGER DROP TRIGGER 触发器名触发器名,nn现在学习的是第17页,共18页管理触发器禁用和启用触发器DISABLE TRIGGER DISABLE TRIGGER 触发器名触发器名,nn|ALL|ALLON ON 对象名对象名|数据库数据库|服务器服务器ENABLE TRIGGER ENABLE TRIGGER 触发器名触发器名,nn|ALL|ALLON ON 对象名对象名|数据库数据库|服务器服务器例:禁用触发器tr_delete现在学习的是第18页,共18页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁