SQL Server实训报告十 作业
日期: 2012 年 5 月 11日 班 级:2010级计算机多媒体技术2班
一、实训目的和要求
1、理解触发器的作用;
2、了解触发器和一般存储过程的区别; 3、掌握创建、修改及删除触发器的方法; 4、理解触发器执行的过程。
二、实训所需仪器、设备
硬件:计算机
软件:操作系统Windows XP、SQL Server 2005
三、实训内容
(一) 简单触发器的创建和使用
1、在student数据库中t_course表创建一名为myt1的AFTER触发器,要求实现以下功能:当插入一条记录后提示“已插入一条新记录”,并验证此触发器。
DECLARE @msg char(30) SET @msg='已插入一条新记录!' PRINT @msg
命令已成功完成。
USE STUDENT GO
insert into t_course
(c_number,c_name,hours,credit)
values('10010211','高等数学','11','4') GO
已插入一条新记录!
(1 行受影响)
2、在student数据库中t_course表创建一名为myt2的AFTER触发器,要求实现以下功能:当删除一条记录后提示“已删除一条记录”,并验证此触发器。
DECLARE @msg char(30) SET @msg='已删除一条记录' PRINT @msg
命令已成功完成。
USE student GO
DELETE FROM t_course WHERE c_number='10010211' GO
已删除一条记录
(1 行受影响)
3、在student数据库中t_course表创建一名为myt3的AFTER触发器,要求实现以下功能:当修改一条记录后提示“已修改一条记录”,并验证此触发器。
DECLARE @msg char(30) SET @msg='已修改一条记录' PRINT @msg
已修改一条记录
4、在student数据库中t_course表创建一名为myt4的INSTEAD OF触发器,要求实现以下功能:当删除一条记录之前提示“不能删除此表的记录!”,并验证此触发器,检查是否能删除此表的记录。
USE STUDENT GO
CREATE TRIGGER TR_myt4 ON T_COURSE INSTEAD OF DELETE AS
PRINT 'INSTEAD OF 触发器开始执行……'
PRINT '本表中的数据不允许被删除!不能执行删除操作!' GO
命令已成功完成。
USE student GO
DELETE FROM t_course WHERE c_number='20010203' GO
INSTEAD OF 触发器开始执行……
本表中的数据不允许被删除!不能执行删除操作!
(0 行受影响)
删除以上创建的所有触发器。
(二) 较复杂的触发器的创建和使用
1、创建一个AFTER触发器,要求实现以下功能:在t_score表上创建一个插入更新类型的触发器scoreCheck,当在score字段中插入或修改考试分数后,触发该触发器,检查分数是否在0至100分之间。
CREATE TRIGGER TR_ScoreCheck ON T_SCORE
FOR INSERT, UPDATE AS
IF UPDATE(SCORE)
PRINT 'AFTER触发器开始执行……' BEGIN
DECLARE @ScoreValue real
SELECT @ScoreValue=(SELECT SCORE FROM inserted) IF @ScoreValue>100 OR @ScoreValue<0 PRINT '输入的分数有误,请确认输入的考试分数!' END
命令已成功完成。
--验证TR_ScoreCheck触发器的功能 USE student GO
PRINT '在t_score中插入记录时触发器执行结果:' PRINT ''
INSERT INTO t_score
VALUES('0554112','10010218',-35) INSERT INTO t_score
VALUES('0554113','100102183',152) GO
在t_score中插入记录时触发器执行结果:
AFTER触发器开始执行……
输入的分数有误,请确认输入的考试分数!
(1 行受影响)
AFTER触发器开始执行……
输入的分数有误,请确认输入的考试分数!
(1 行受影响)
2、创建一个AFTER触发器,要求实现以下功能:在t_score表上创建一个插入更新类型的触发器scoreCheck2,当在score字段中插入或修改考试分数后,触发该触发器,检查分数是否在0至100分之间,若不在,则不能插入或修改,并给出提示。代码段如下:
CREATE TRIGGER scoreCheck2 ON t_score FOR insert, update AS
declare @ScoreValue as int
select @ScoreValue =(select score from inserted) if @ScoreValue <0 or @ScoreValue >100 begin
rollback transaction
print '数据不正确不能修改'
end
验证上面创建的触发器,检查当输入的分数不在0到100之间,能否保存分数。此功能的实现是依赖代码段的黑体字标识的语句rollback transaction来实现的,其作用是回滚变动的数据。教材没有此语句。
--验证TR_ScoreCheck触发器的功能 USE student GO
PRINT '在t_score中插入记录时触发器执行结果:' PRINT ''
INSERT INTO t_score
VALUES('0554112','10010218',-35) INSERT INTO t_score
VALUES('0554113','100102183',152) GO
在t_score中插入记录时触发器执行结果:
AFTER触发器开始执行……
输入的分数有误,请确认输入的考试分数! 数据不正确不能修改
消息3609,级别16,状态1,第3 行 事务在触发器中结束。批处理已中止。
3、根据教材第4章P68创建一个检查约束,实现上述2的功能。体会触发器与
检查约束功能上的相似之处。
4、在student数据库中t_course表创建一名为twofield的AFTER触发器,要求实现以下功能:当在hours(学时)和credit(学分)字段插入或修改学时或学分后,触发该触发器,检查学时是否是大于0小于200的整数,并且学分是否是大于0小于10的实数,若不满足这两个条件,则不允许插入或修改,并给出提示。
CREATE TRIGGER twofield ON t_score
FOR insert, update AS
declare @ScoreValue as int,@aa as int
select @ScoreValue =(select score from inserted),@aa=(select c_number from inserted)
if @ScoreValue <0 or @ScoreValue >100 and @aa<0 or @aa>10 begin
rollback transaction print '数据不正确不能修改' end
命令已成功完成。
--验证TR_ScoreCheck触发器的功能 USE student GO
PRINT '在t_score中插入记录时触发器执行结果:' PRINT ''
INSERT INTO t_score
VALUES('0554112','10010218',-35) INSERT INTO t_score
VALUES('0554113','100102183',152) GO
在t_score中插入记录时触发器执行结果:
AFTER触发器开始执行……
输入的分数有误,请确认输入的考试分数! 数据不正确不能修改
消息3609,级别16,状态1,第3 行 事务在触发器中结束。批处理已中止。
5、根据教材第4章P68创建一个检查约束,实现上述4的功能。体会触发器与检查约束功能上的相似之处。
6、创建一个AFTER触发器,要求实现以下功能:在t_student表上创建一个删除类型的触发器stu_delete,当在t_student表中删除某一条记录后,触发该触发器,在t_score表中删除与此学号对应的记录。
CREATE TRIGGER TR_Stu_Delete ON T_STUDENT FOR DELETE AS
PRINT '删除触发器开始执行……' DECLARE @StuNum char(10)
PRINT '把在T_ST …… 此处隐藏:4068字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




