欢迎来到天天文库
浏览记录
ID:43701783
大小:619.00 KB
页数:22页
时间:2019-10-12
《关系数据库与SQLServer2008第2版教学课件作者龚小勇第27讲触发器课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章存储过程与触发器——触发器的使用第27讲复习:存储过程的含义、优点类型:系统存储过程、用户存储过程创建存储过程:需要确定存储过程的两个个组成部分:输入参数、输出参数。针对数据库操作的功能语句。复习:格式createprocedurep1@学号char(10),@课程名varchar(20)output,@成绩tinyintoutputasSQL语句调用存储过程declare@kcmvarchar(16),@cjtinyintexecp1‘2012130101’,@kcmoutput,@cjou
2、tputprint…….输入实参将学号传递给输入形参输出形参将课程名和成绩返回给输出实参引:实现数据完整性三个方面:实现“实体完整性”的方法primarykey约束、unique约束、标识列、唯一索引实现“参照完整性”的方法foreignkey约束实现“域完整性”的方法notnull约束、default约束、check约束、规则对象、默认值对象请思考:当用户对表进行了相应的操作后,我们希望系统能自动撤消该操作,并给出用户提示信息,请问能否用以上的方法来实现?不能实现。因为约束只能进行简单条件的限制,
3、对于复杂的条件,只能通过触发器来实现。第9章存储过程和触发器——触发器的使用教学内容基础知识:触发器概述创建触发器触发(激活)触发器触发器的更新触发器的删除第9章存储过程和触发器——触发器的使用学习目标认知目标:理解触发器的概念和作用了解触发器的触发方式了解inserted和deleted临时表能力目标:触发器的创建(重点)创建不同类型的触发器(难点)根据触发器的功能正确检验触发器的作用(重点)一、触发器概述——1.触发器的概念含义是一种特殊的存储过程。当在指定对象上执行DML事件(数据操作语言事件
4、:insert、update、delete)或DDL事件(数据定义语言事件:create、alter、drop)或LOGON事件(用户与SQLServer实例建立会话)时,由系统自动触发执行。创建触发器的目的对表实现复杂的数据完整性约束,以防止不正确的操作。一、触发器概述——2.触发器的类型DML触发器按触发器激活的时机不同,分为:后触发器(掌握):只有执行了insert、update、delete操作后,才激发的触发器。替代触发器(了解):不执行命令所定义的insert、update、delete
5、操作,而仅执行触发器中定义的代码。按引起触发的事件不同,分为:insert触发器、update触发器、delete触发器DDL触发器登录触发器一、触发器概述——3.临时表每个触发器被激活时,系统都为它自动创建两个临时表:inserted表deleted表临时表的特点:是逻辑表,由系统来维护,用户不能对它们进行修改。其结构与源表(激活触发器的表)结构相同触发器执行完成后,该临时表会自动被删除。一、触发器概述——3.临时表inserted临时表的作用:存放执行insert或update语句后,要在原表中
6、插入的新行(新行同时插入了原表和inserted表中)特点:原表和inserted表有相同的行。deleted临时表的作用:存放执行delete或update语句后,要从原表中删除的行特点:原表和deleted表不会有相同的行。演示图二、创建和激活DML触发器创建格式:createtrigger触发器名on表名
7、视图名for
8、after
9、insteadof[insert,update,delete]asSQL语句说明:1个表上可有多个触发器。每个触发器只能作用在一个表上。指定了触发器激活的时机for
10、、after创建后触发器insteadof创建替代触发器激活触发器的事件类型二、创建和激活DML触发器——1.insert触发器实例1:为xs_kc表创建一个名为t1的insert触发器,当向xs_kc表进行插入操作时激发该触发器,并给出提示信息“有新成绩信息插入到xs_kc表中!”。createtriggert1onxs_kcforinsertasprint‘有新成绩信息插入到xs_kc表中!’goinsertxs_kcvalues('2012130101','111',87,null)说明:该语
11、句执行后,会激活触发器,显示提示信息。当再执行一次该插入语句,请思考:该触发器能不能被激活?为什么?原因:当插入的数据违反了先前定义的约束规则时,则约束优先于触发器起作用,该插入触发器不会被激发。二、创建和激活DML触发器——1.insert触发器实例2:阅读教材例9-10。【题意分析】:要在xscj库的xsqk表中插入下面所示的2条信息,如果在该表上未创建触发器,则可成功插入到xsqk表中。但我们希望插入的信息必须是“计算机应用”系,否则就撤消刚才的插入,并返回错误
此文档下载收益归作者所有