(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》

上传人:re****.1 文档编号:567480239 上传时间:2024-07-20 格式:PDF 页数:4 大小:215.56KB
返回 下载 相关 举报
(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》_第1页
第1页 / 共4页
(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》_第2页
第2页 / 共4页
(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》_第3页
第3页 / 共4页
(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》》由会员分享,可在线阅读,更多相关《(2.1.9)--实验九触发器的应用(SQLSever版)《数据库系统概论》(4页珍藏版)》请在金锄头文库上搜索。

1、实验九实验九 触发器的应用触发器的应用 一、实验目的一、实验目的 通过本实验使学生理解触发器实现数据完整性的作用, 掌握触发器的创建方法, 并理解触发器与完整性约束的不同。 二、实验内容二、实验内容 1、为表建立触发器,实现域完整性。 2、为表建立级联更新的触发器,实现参照完整性。 3、触发器的维护。 三、实验步骤三、实验步骤 (一)触发器实现域(一)触发器实现域完整性完整性 实验实验 9.1 在JWGL数据库的表 Course 上创建触发器T1_insert, 插入学分满足取值为 1,2,3,4,5,6 的课程记录。 步骤如下: 在查询编辑器窗口输入以下语句,创建一个 INSERT 触发器。

2、 USE JWGL GO CREATE trigger T1_insert ON Course FOR INSERT AS DECLARE Course_Credit smallint SELECT Course_Credit=Course.Credit FROM Course IF Course_Credit NOT IN (1,2,3,4,5,6) ROLLBACK GO 单击工具栏中的“执行”按钮,完成触发器的创建。 在 Course 表中分别插入两行记录以激活该触发器,第一行学分的值符合要求,第二行学分的值在 1-6 以外。在查询编辑器窗口输入以下语句: USE JWGL GO INS

3、ERT INTO Course VALUES (09050400,操作系统,3,4,48,16) INSERT INTO Course VALUES (10010503,高等数学,1,7,96,0) GO 执行该语句,第一行数据成功插入 Course 表,第二行数据不符合完整性约束要求,系统撤销该插入操作。 (二)触发器实现二)触发器实现级联更新级联更新 实验实验 9.2 创建 JWGL 数据库的 INSERT 触发器 T2_insert, 在向 Student 表输入一条记录的同时输入这个学生的选课信息到 SC 表。 在查询编辑器窗口输入以下语句: USE JWGL GO CREATE tr

4、igger T2_insert ON Student FOR INSERT AS DECLARE Student_StuNo char(8) SELECT Student_StuNo=StuNo FROM INSERTED INSERT INTO SC(StuNo,CouNo) VALUES(Student_StuNo,10010501) SELECT * FROM SC GO 在 Student 表中插入一条记录以激活该触发器,编写代码如下: USE JWGL GO INSERT INTO Student VALUES (16090104,张伟强, 男, 1998-06-09 ,JSJ, J

5、SJ1602, 18602378967, 四川, 四川省成都市金都路) GO 系统在向 Student 表中插入该记录的同时,自动在 SC 表中插入该学生的选课信息。 实验实验 9.3 创建 JWGL 数据库的 DELETE 触发器 T3_delete,在删除一个学生信息的同时删除这个学生的全部选课记录。 在查询编辑器窗口输入以下语句: USE JWGL GO CREATE trigger T3_delete ON Student FOR DELETE AS DECLARE Student_StuNo char(8) SELECT Student_StuNo=StuNo FROM DELETE

6、D DELETE FROM SC WHERE StuNo=Student_StuNo DELETE FROM Student WHERE StuNo=Student_StuNo SELECT * FROM SC GO 执行下列语句: USE JWGL GO DELETE FROM Student WHERE StuNo=16090104 GO 系统在从 Student 表中删除该记录的同时,自动从 SC 表中删除该学生的选课信息。 实验实验 9.4 为 JWGL 数据库创建一个 UPDATE 触发器 T4_update,当在 Teacher 表中更新某个教师的教师号同时更新 TC 表中的教师号

7、信息。 在查询编辑器窗口输入以下语句: USE JWGL GO CREATE trigger T4_update ON Teacher FOR UPDATE AS DECLARE OldTeaNo char(8),NewTeaNo char(8) SELECT OldTeaNo =TeaNo FROM DELETED SELECT NewTeaNo=TeaNo FROM INSERTED UPDATE TC SET TeaNo =NewTeaNo WHERE TeaNo=OldTeaNo SELECT * FROM TC GO 执行下列语句: USE JWGL GO UPDATE Teache

8、r SET TeaNo=J090103 WHERE TeaNo=J090101 GO 系统在把 Teacher 表中“J090101”修改为“J090103”的同时,自动在 TC 表中把所有“J090101”修改为“J090103” 。 (三)触发器的维护(三)触发器的维护 1、禁用和启用触发器 实验实验 9.5 禁用触发器 T2_insert。 在查询编辑器窗口输入以下语句: USE JWGL GO DISABLE TRIGGER T2_insert ON Student GO 在禁用了触发器 T2_insert 后,向 Student 表中插入一条学生信息,将不会影响 SC 表中的数据,而

9、只是将 Student 表进行了更新。 实验实验 9.6 启用触发器 T2_insert。 在查询编辑器窗口输入以下语句: USE JWGL GO ENABLE TRIGGER T2_insert ON Student GO 当启用了触发器 T2_insert 之后,在 Student 表中插入新记录的同时将同时影响 SC 表中的信息。 2、删除触发器 实验实验 9.7 删除触发器 T2_insert。 在查询编辑器窗口输入以下语句: USE JWGL GO DROP TRIGGER T2_insert GO 点击工具栏中的“执行”按钮,将该触发器删除。 本实验指导书参考数据库系统及应用实验与课程设计指导SQL Server 2008. 刘金岭.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号