触发器试验

  

实验名称    触发器试验    实验地点      实验楼502   实验日期    5.23          

 

一、实验目的及要求

1. 掌握触发器的创建、修改和删除操作

2. 掌握触发器的触发执行

3. 掌握触发器与约束的不同

 

 二、实验环境

Windows10+SQL Sever 2008

 

三、实验内容

1. 创建触发器

(1)启动 SQL Server 查询编辑器,“S+学生学号”数据库。

(2)在查询命令窗口中输入以下 CREATE TRIGGER 语句,创建触发器。

为 SC(学生选课)表创建一个基于 UPDATE 操作和 DELETE 操作的复合型触发器,当修

改了该表中的成绩信息或者删除了成绩记录时,触发器被激活生效,显示相关的操作信息

 

- -创建触发器

 CREATE TRIGGER tri_UPDATE_DELETE_sc

ON SC

FOR UPDATE,DELETE

 AS

-检测成绩列表是否被更新

IF UPDATE(成绩)  

 BEGIN  

-显示学号、课程号、原成绩和新成绩信息

SELECT INSERTED.课程号,DELETED.成绩 AS 原成绩,

INSERTED.成绩 AS 新成绩  

FROM DELETED ,INSERTED

 WHERE DELETED.学号=INSERTED.学号

END

-检测是更新还是删除操作

 ELSE IF COLUMNS_UPDATED( )=0

BEGIN

-显示被删除的学号、课程号和成绩信号

SELECT 被删除的学号=DELETED.学号,DELETED.课程号,

DELETED.成绩 AS 原成绩

FROM DELETED

END

ELSE

返回提示信息

PRINT „ 更新了非成绩列!‟

 (3)点击快捷工具栏上的快捷按钮,完成触发器的创建    

触发器试验_第1张图片

 2. 触发触发器

 (1)在查询命令窗口中输入以下 UPDATE SC 语句,修改成绩列,激发触发器。

UPDATE SC

SET 成绩=成绩+5

WHERE 课程号=‟101‟   

触发器试验_第2张图片

 (2)在查询命令窗口中输入以下 UPDATE SC 语句修改非成绩列,激发触发器。

UPDATE SC

SET 课程号=‟113‟

 WHERE 课程号=‟103‟   

触发器试验_第3张图片

 (3)在查询命令窗口中输入以下 DELETE SC 语句,删除成绩记录,激发触发器。

DELETE SC 

WHERE 课程号=‟102‟ 

触发器试验_第4张图片

 3. 比较约束与触发器的不同作用期

 (1)在查询命令窗口中输入并执行以下 ALTER  TABLE 语句,为 SC 表添加一个约

束,使得成绩只能大于等于 0 且小于等于 100

ALTER TABLE SC

ADD CONSTRAINT CK_成绩

CHECK(成绩>=0 AND 成绩<=100)   

触发器试验_第5张图片

 (2)在查询命令窗口中输入并执行以下 UPDATE SC 语句,查看执行结果。

UPDATE SC 

SET 成绩=120

 WHERE 课程号=‟108‟   

触发器试验_第6张图片

 (3)在查询命令窗口中输入执行以下 UPDATE SC 语句,查看执行结果。

UPDATE SC

SET 成绩=90

 WHERE 课程号=‟108‟   

触发器试验_第7张图片

 4. 删除新创建的触发器

 (1)在查询命令窗口中输入 DROP TRIGGER 语句,删除新创建的触发器。

DROP TRIGGER tri_UPDATE_DELETE_sc

(2)点击快捷工具栏上的快捷按钮,删除触发器。  

触发器试验_第8张图片

四、实验总结

       通过这次试验,我学会了如何操作触发器这个实验,也对触发器有了更好的了解。但就是在运行时出现好多问题,刚开始无从下手,不知道怎么改,最后终于慢慢问同学解决了,都是些易出错的还有细节不注意。

 

 

 

  

你可能感兴趣的:(触发器试验)