收藏 分享(赏)

实验 触发器.doc

上传人:hwpkd79526 文档编号:7781666 上传时间:2019-05-25 格式:DOC 页数:3 大小:37KB
下载 相关 举报
实验 触发器.doc_第1页
第1页 / 共3页
实验 触发器.doc_第2页
第2页 / 共3页
实验 触发器.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验 触发器1、 After 类型触发器1) Insert 触发器:为 SC 表编写触发器 SC_insert,实现当 SC 中插入数据时检查 Score 字段,若大于 0小于 100,允许插入,反之则不允许插入。CREATE TRIGGER SC_inserte ON SC AFTER INSERTAS BEGINdeclare score int select score=score from insertedIF (score100 or score0)begin PRINT 成绩超出范围!RollbackENDend向SC 表插入一条记录,检查是否能输入进去insert into SC

2、 values(s4,c2,102)2) delete 触发器设置 C 表和 T 表的外键约束:“强制外键约束为否” ,更新和删除操作“无操作” 。为T 表建立一个名为 T_del 的 Delete 触发器。当 T 表删除数据时,如果 C 表引用了该记录,则置 C 表中引用列(T#)为 null 值。CREATE TRIGGER T_delON T AFTER deleteAS BEGINupdate C set T#=null where T# in (select T# from deleted)end验证:删除T表中t1教师,查看 C表相关记录是否更改delete T where T#=

3、t13) Update 触发器为 T 表建立一个名为触发器 T_update 的 Update 触发器。当 T 表更新教工号时,级联更新 C 中相应记录的教工号。CREATE TRIGGER T_updateON T AFTER updateAS if update(T#)BEGINupdate C set T#=(select T# from inserted )where T# in (select T# from deleted)print After触发器end验证:1) update T set T#=T3 where T#=T2能否执行,为什么?2) update T set T#

4、=T4 where T#=T3能否执行,为什么?结论:after 触发器和约束执行先后顺序?2、Instead of 类型触发器1)为 T 表建立一个 Instead of 触发器 T_Inupdate,当 T 表更新教工为SHI老师时,更新其职称字段为“副教授” ,并且在触发器中打印“Instead of 触发器” 。create TRIGGER T_InupdateON T Instead Of updateAS declare tname char(5)declare tid char(5)select Tid=T# from deletedselect tname=TNAME from

5、 deletedprint tidif(tname=SHI)BEGINupdate T set TITLE=副教授 where T#=Tidprint Instead Of触发器end验证:输入下列语句update T set T#=T2 where T#=T5,查看是否修改了shi老师的职称?是否修改了shi老师的工号?为什么?2)修改T_Inupdate 触发器,使得当输入 update T set T#=T2 where T#=T5时,确实能修改shi老师工号。alter TRIGGER T_InupdateON T Instead Of updateAS declare tname c

6、har(5)declare tidold char(5)declare tidnew char(5)select Tidold=T#,tname=TNAME from deletedselect Tidnew=T# from insertedprint Tidoldif(tname=SHI)BEGINupdate T set TITLE=副教授 where T#=Tidoldprint Instead Of触发器update T set T#=Tidnew where T#=Tidoldend验证:输入下列语句update T set T#=T2 where T#=T5,查看是否修改了shi老师的职称?是否修改了shi老师的工号?是否级联修改了 C表中的教工号?为什么?结论:当一个表中同时有Instead of触发器和after触发器时执行次序。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报