关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt

关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt

ID:50335314

大小:262.50 KB

页数:22页

时间:2020-03-08

关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt_第1页
关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt_第2页
关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt_第3页
关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt_第4页
关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt_第5页
资源描述:

《关系数据库与SQL Server 2005 教学课件 作者 龚小勇 第27讲 触发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章存储过程和触发器——触发器的使用主讲人:段利文第27讲复习:存储过程的含义、优点类型:系统存储过程、用户存储过程创建存储过程:需要确定存储过程的三个组成部分:所有的输入参数、传给调用程序的输出参数。被执行的针对数据库操作的语句,包括调用其它存储过程的语句(嵌套)。返回给调用程序的状态值,以指明调用是成功或失败(returen)复习:格式Createprocedurep_cj@学号char(6),@课程名output,@成绩outputasSQL语句调用存储过程Declare@xhchar(6),@kcm

2、char(16),@cjintSet@xh=‘020102’Execp_cj@xh,@kcmoutput,@cjoutputPrint…….输入实参将学号传递给输入形参输出形参将课程名和成绩返回给输出实参引:实现数据完整性三个方面:实现“实体完整性”的方法primarykey约束、unique约束、标识列、惟一索引实现“域完整性”的方法Check约束、规则对象、default约束、默认值对象、notnull约束实现“参照完整性”的方法foreignkey约束请思考:当用户对表进行了相应的操作后,我们希望系统能

3、自动撤消该操作,并给出用户提示信息,请问能否用以上的方法来实现?不能实现。因为约束只能进行简单条件的限制,对于复杂的条件,只能通过触发器来实现。第9章存储过程和触发器——触发器的使用教学内容基础知识:触发器概述创建触发器触发(激活)触发器触发器的更新触发器的删除第9章存储过程和触发器——触发器的使用学习目标认知目标:理解触发器的概念和作用了解触发器的触发方式了解inserted和deleted临时表能力目标:触发器的创建(重点)创建不同类型的触发器(难点)根据触发器的功能正确检验触发器的作用(难点)一、触发器

4、概述——1.触发器的概念含义是一种表或视图执行insert、delete、update操作时,被系统自动执行的特殊的存储过程。创建触发器的目的对表实现复杂的数据完整性约束,以防止不正确的操作。一、触发器概述——2.触发器的类型按触发器激活的时机不同,分为:后触发器(掌握)只有执行了insert、delete、update操作后,才激发的触发器。替代触发器(了解)不执行命令所定义的insert、delete、update操作,而仅执行触发器中定义的代码。按引起触发的事件不同,分为:insert触发器delete

5、触发器update触发器一、触发器概述——3.临时表每个触发器被激活时,系统都为它自动创建两个临时表:inserted表deleted表临时表的特点:是逻辑表,由系统来维护,用户不能对它们进行修改。其结构与源表(激活触发器的表)结构相同触发器执行完成后,该临时表会自动被删除。一、触发器概述——3.临时表deleted临时表的作用:存放执行delete或update语句后,要从源表中删除的行特点:源表和delete表不会有相同的行。inserted临时表的作用:存放执行insert或update语句后,要在源表

6、中插入的新行(新行同时插入了源表和inserted表中)特点:源表和inserted表有相同的行。演示图二、创建和激活触发器创建格式:createtrigger触发器名on表名

7、视图名for

8、after

9、insteadof[insert,update,delete]asSQL语句说明:1个表上可有多个触发器。每个触发器只能作用在一个表上。指定了触发器激活的时机for、after创建后触发器insteadof创建替代触发器激活触发器的事件类型二、创建和激活触发器——1.insert触发器实例1:在xscj库的x

10、s_kc表上创建1个名为tr_insert_cj的触发器,当向xs_kc表进行插入操作时激发该触发器,并给出提示信息“有新成绩插入到xs_kc表中!”createtriggertr_insert_cjonxs_kcafterinsertasprint‘有新成绩信息插入到xs_kc表!’goinsertintoxs_kcvalues('020105','101',87,null)说明:该语句执行后,会激活触发器,显示提示信息。当再执行一次该插入语句,请思考:该触发器能不能被激活?为什么?原因:当插入的数据违反了

11、先前定义的约束规则时,则约束优先于触发器起作用,该插入触发器不会被激发。二、创建和激活触发器——1.insert触发器实例2:阅读教材P183例7-10。【题意分析】:要在xscj库的xsqk表中插入下面所示的2条信息,如果在该表上未创建触发器,则可成功插入到xsqk表中。但我们希望插入的信息必须是“计算机”系,否则就撤消刚才的插入,并返回错误信息。用触发器实现该约束。usexscjinsertin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。