数据库实验6触发器.doc
《数据库实验6触发器.doc》由会员分享,可在线阅读,更多相关《数据库实验6触发器.doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验6 触发器一、实验目的1了解触发器的基本概念和功能。掌握触发器的创建和使用方法。二、相关知识创建触发器的语法为:CREATE TRIGGER ON WITH ENCRYPTIONFOR DELETE,INSERT,UPDATEWITH APPENDNOT FOR REPLICATIONAS 其中:1)WITH ENCRYPTION 为加密选项。2)DELETE 选项为创建DELETE 触发器。DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一个特殊的逻辑表(delete表)中。触发器的动作可以检查delete表中的数据,以确定下
2、一步该如何处理。3)INSERT选项为创建INSERT触发器。INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表)中,触发器会根据INSERT表中的值决定如何处理。4)UPDATE选项为创建UPDATE触发器。UPDATE触发器仅在对指定表中进行更新数据操作时激活。UPDATE触发器激活后把将要被更新的原数据移入delete表中再将要被更新后的新数据的备份送入insert表中,UPDATE触发器对delete和inserted表进行检查,并决定如何处理。5)NOT FOR REPLICATION 选项说明当一个复制过程在
3、修改一个触发器表时,与该表相关联的触发器不能被执行。触发器是一种特殊类型的存储过程,用来保证数据完整性,当对它所保护数据进行插入、修改和删除时自动激活,对改变的数据进行检查,以防止对数据进行不正确、未授权或不一致的修改。一个触发器只适用于一个表,每个表最多只能有三个触发器,它们分别是INSERT、UPDATE和DELETE触发器。触发器仅在实施数据完整性和处理业务规则时使用。有关更详细的信息,感兴趣的同学可以在帮助中搜索主题。三、实验内容(一)简单触发器练习:1用SQL Server Management Studio创建触发器,当学生表S中有新的记录插入时,提示用户在选课表SC中加入相应的选
4、课记录。具体步骤:1)打开SQL Server Management Studio扩展到学生选课数据库,选择S表触发器,右键单击,选择“新建触发器”,出现的触发器Transact-SQL语句输入窗口:CREATE TRIGGER TIGGER_S ON S FOR INSERT ASBEGINPRINT 学生表S中有新的同学加入,别忘了给他增加选课记录END参考下图1【注意下图中表名是中文,比如“学生”,我们这里用英文S】。图1触发器TransactSQL语句输入窗口2)在文本框中输入创建触发器的Transact-SQL语句(语句见上图),单击“检查语法”按钮进行语法的检查,检查无误后,单击“
5、!执行”按钮。3)打开查询分析器,在顶部的下拉框中选中“学生选课”数据库,运行INSERT语句在学生表中加入一条学生记录,如:INSERT INTO SVALUES(S012,刘东,男,22, ,D2); 验证触发器,看看会出现什么结果?4)创建好以后还可以在名字弹出项中选择要修改的触发器进行修改或删除。(二)绩点计算【特别注意,以下实验语句可以参考bb平台上的补充课件T-SQL触发器实验参考资料】绩点计算方法请参考本文档最后面。(1)课程学分绩点Grade的自动更新1)添加1列:用alter table add 语句给选课表SC增加一个属性:课程学分绩点Grade, 数据类型为 numeri
6、c(4,1);alter table sc add Grade numeric(4,1)2)创建一个触发器:当学生的某一门课的成绩有变化时(update)自动修改Grade值,并进行验证,采用after触发器create trigger upd_Grade on SCafter update asif update(Score) -使用update(列)函数表示修改了某列的值begin if (select Score from inserted) 60) -成绩小于,绩点为update SC set Grade = 0from insertedwhere SC.Snum = inserted
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 触发器
限制150内