SQL Servr实训报告十 作业.docVIP

  • 32
  • 0
  • 约5.24万字
  • 约 12页
  • 2016-12-03 发布于河南
  • 举报
SQL Servr实训报告十 作业

网络数据库 实训报告 日期: 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 行受影响) 2、在student数据库中t_course表创建一名为myt2的AFTER触发器,要求实现以下功能:当删除一条记录后提示“已删除一条记录”,并验证此触发器。 DECLARE @msg char(30) SET @msg=已删除一条记录 PRINT @msg 命令已成功完成。 USE student GO DELETE FROM t_course WHERE c_numberGO 已删除一条记录 (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_numberGO 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 @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触发器开始执行…… 输入的分数有误,请确认输

文档评论(0)

1亿VIP精品文档

相关文档