实验五 SJK触发器 | ||||
2023.4.19 | 实验地点 | 软件工程基础实验室 | 实验课时 | 2 |
通过实验加深对数据完整性的理解,学会理解、创建和使用触发器。 | ||||
使用SQL语句熟悉触发器的创建和查看方法,熟悉触发器的修改和删除方法。 | ||||
(1) 仍然使用自定义完整性实验中的Teacher表。为此表建立触发器T1,当插入或使更新表中的数据时,保证所操作的纪录的Tage值大于0。 在新建查询窗口中输入如下SQL语句 USE University Mis GO CREATE TRIGGER T1 ON Teacher FOR INSERT,UPDATE AS IF(SELECT Tage FROM INSERTED)<1 BEGIN PRINT ‘职工年龄必须是大于0的整数! 操作失败!’ ROLLBACK TRANSACTION END (2) 为Teacher表建立触发器T2,禁止删除编号为S01的CEO。 在新建查询窗口中输入如下SQL语句 USE University_Mis GO CREATE TRIGGER T2 ON Teacher FOR DELETE AS IF(SELECT Tno FROM DELETED)=’T01’ BEGIN PRINT ‘此人是CEO! 删除操作失败!’ ROLLBACK TRANSACTION END (3) Teacher表中的人员的编号是唯一且不可更变的,创建触发器T3实现更新中编号的不可改变性。在新建查询窗口中输入如下SQL语句 USE University_Mis GO CREATE TRIGGER T3 ON Teacher FOR UPDATE AS IF UPDATE(Tno) BEGIN PRINT ‘职工编号不能修改!’ ROLLBACK TRANSACTION END (4) 在新建查询窗口中输入如下SQL语句 USE University_Mis INSERT INTO Teacher VALUES(‘T03’,’ 李宏’,’F’,-10,’开发部’) (5) 在新建查询窗口中输入如下SQL语句 USE University_Mis UPDATE Teacher SET Tage=-7 WHERE Tno=’T01’ (6) 在新建查询窗口中输入如下SQL语句 USE University_Mis DELETE FROM Teacher WHERE Tname=’李用’ (7) 在新建查询窗口中输入如下SQL语句 USE University_Mis UPDATE Teacher SET Tno=’T07’ WHERE Tsex=’F’ | ||||
经检验,实验基本达到预期效果。有点感悟需要牢记,触发器会在当系统检测数据中有违反完整性约束条件时给出用户必要的提示信息,还会引起系统内部自动进行某些操作,已消除违反完整性约束条件所引起的负面影响,具有安全保护的功能。 |