文档详情

SQL Serve实训报告十 作业.doc

发布:2015-12-23约4.76千字共10页下载文档
文本预览下载声明
网络数据库 实训报告 日期: 2012 年 5 月 11日 班 级:2010级计算机多媒体技术2班 学 号 姓 名 指导老师 实训地点 成绩 20103311225 胡杰思 罗小平 实D304 实训项目名称 实训十 触发器的创建和使用 一、实训目的和要求 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高等数学,11,4) GO 已插入一条新记录! (1 行受影响) DECLARE @msg char(30) SET @msg=已删除一条记录 PRINT @msg 命令已成功完成。 USE student GO DELETE FROM t_course WHERE c_numberGO 已删除一条记录 (1 行受影响) 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_numberGO INSTEAD OF 触发器开始执行…… 本表中的数据不允许被删除!不能执行删除操作! (0 行受影响) 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 @ScoreValue100 OR @ScoreValue0 PRINT 输入的分数有误,请确认输入的考试分数! END 命令已成功完成。 --验证TR_ScoreCheck触发器的功能 USE student GO PRINT 在t_score中插入记录时触发器执行结果: PRINT INSERT INTO t_score VALUES(0554112-35) INSERT INTO t_score VALUES(0554113,100102183,152) GO 在t_score中插入记录时触发器执行结果: AFTER触发器开始执行…… 输入的分数有误,请确认输入的考试分数! (1 行受影响) AFTER触发器开始执行…… 输入的分数有误,请确认输入的考试分数! (1 行受影响) REATE 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 验证上面创
显示全部
相似文档