SQL Serve实训报告十 作业.doc
文本预览下载声明
网络数据库 实训报告
日期: 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
验证上面创
显示全部