您所在位置: 网站首页 / 网络数据库讲稿(触发器).docx / 文档详情
网络数据库讲稿(触发器).docx 立即下载
2025-08-28
约1.2万字
约18页
0
17KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

网络数据库讲稿(触发器).docx

网络数据库讲稿(触发器).docx

预览

免费试读已结束,剩余 13 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

网络数据库讲稿(触发器)

第一篇:网络数据库讲稿(触发器)网络数据库讲稿3/26/2013触发器P191一、触发器概述1.是一种特殊的存储过程。2.不能被显式调用,只能由一些特定的操作(命令)引发(激活),这些命令是:INSERT、DELETE、UPDATE、CREATE、ALTER、DROP、GRANT、DENY、REVOKE等。3.每个触发器由三部分组成①触发器名称:命名规则与变量名、存储过程名相同;②激活该触发器的操作(命令动词)。③一个存储过程。4.使用触发器可强制实现数据的一致性和完整性。二、触发器的分类(按引发命令分类)及其工作原理1.DML触发器(表级)(1)触发器必须依附于某一个表(触发器必须被包含在某一个表中)。(2)激活该触发器的操作:可以是INSERT、DELETE、UPDATE之一。(3)当上述操作发生在包含触发器的表上时,触发器中的过程被自动执行。(4)支持两种类型的触发器:①AFTER可以为同一表的同一操作定义多个该类型的触发器,并可定义执行顺序;②INSTEADOF同一表的同一操作只能定义一个该类型的触发器。(5)工作原理P193临时逻辑表INSERTED和DELETED。2.DDL触发器(数据库级和服务器级)(1)触发器必须依附于某一个数据库(触发器必须被包含在某一个数据库中)。(2)激活该触发器的操作:可以是CREATE、ALTER、DROP、GRANT、DENY、REVOKE等之一。(3)当上述操作发生在包含触发器的数据库上时,触发器中的过程被自动执行。(4)只有AFTER型触发器。三、创建DML触发器P194用命令CREATETRIGGER创建例:1.CREATETRIGGER增加学生学分ON成绩//只能增加一条记录FORINSERTASDECLARE@XHCHAR(6),@KCHCHAR(8),@FSDECIMAL(4,1)SELECT@XH=学号,@KCH=课程编号,@FS=分数FROMINSERTEDIF@FS>=60网络数据库讲稿3/26/2013UPDATE学生SET已修学分=已修学分+(SELECT学分FROM课程WHERE课程编号=@KCH)WHERE学号=@XH2.CREATETRIGGER减少学生学分ON成绩FORDELETEASUPDATE学生SET已修学分=已修学分-(SELECTSUM(学分)FROM课程WHERE课程编号IN(SELECTDISTINCT课程编号FROMDELETEDWHERE学生.学号=DELETED.学号AND分数>=60))WHEREEXISTS(SELECTDISTINCT课程编号FROMDELETEDWHERE学生.学号=DELETED.学号AND分数>=60)3.CREATETRIGGER修改学生学分ON成绩FORUPDATEASUPDATE学生SET已修学分=已修学分-(SELECTSUM(学分)FROM课程WHERE课程编号IN(SELECTDISTINCT课程编号FROMDELETEDWHERE学生.学号=DELETED.学号AND分数>=60))WHEREEXISTS(SELECTDISTINCT课程编号FROMDELETEDWHERE学生.学号=DELETED.学号AND分数>=60)UPDATE学生SET已修学分=已修学分+(SELECTSUM(学分)FROM课程WHERE课程编号IN(SELECTDISTINCT课程编号FROMINSERTEDWHERE学生.学号=INSERTED.学号AND分数>=60))WHEREEXISTS(SELECTDISTINCT课程编号FROMINSERTEDWHERE学生.学号=INSERTED.学号AND分数>=60)4.“修改学生学分”也可改为:CREATETRIGGER修改学生学分ON成绩FORUPDATEASUPDATE学生SET已修学分=(SELECTSUM(学分)FROM课程WHERE课程编号IN网络数据库讲稿3/26/2013(SELECT课程编号FROM成绩WHERE学生.学号=成绩.学号AND分数>=60))然后可执行下列命令,并检验执行结果。--INSERTINTO成绩VALUES('200202','L2020308',83)--INSERTINTO成绩VALUES('200202','L2030501',80)--INSERTINTO成绩VALUES('200202','L2030506',75)--DELETEFROM成绩WHERE学号='200202'ANDLEFT(课程编号,1)='L'--UPDATE成绩SET分数=80WHERE学号='200202'ANDLEFT(课程编号,1)='L'四、创建DDL触发器P198例:1.P1992.CREATETRIG
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

网络数据库讲稿(触发器)

文档大小:17KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用