3.在teacher表上建立一个DELETE触发器T_teacherDel,防止用户删除teacher表通信学院的记录。设计用例进行测试。删除触发器T_teacherDel。
时间: 2024-02-15 08:04:32 浏览: 65
好的,我理解了你的问题。下面是我对你的问题的回答:
首先,我们可以使用以下代码创建一个DELETE触发器T_teacherDel:
```
CREATE TRIGGER T_teacherDel
ON teacher
FOR DELETE
AS
IF EXISTS (SELECT 1 FROM deleted WHERE college = '通信学院')
BEGIN
PRINT '不能删除通信学院的教师记录!'
ROLLBACK
END
```
这个触发器会在用户尝试删除teacher表中的记录时被触发。如果被删除的记录的college字段为“通信学院”,那么触发器就会输出一条提示信息并回滚删除操作。
接下来,我们可以编写一个测试用例来测试这个触发器。例如,我们可以先向teacher表中插入一些数据,然后尝试删除其中一个college字段为“通信学院”的记录,看看触发器是否会阻止删除操作:
```
INSERT INTO teacher (id, name, college) VALUES (1, '张三', '计算机学院')
INSERT INTO teacher (id, name, college) VALUES (2, '李四', '通信学院')
INSERT INTO teacher (id, name, college) VALUES (3, '王五', '经济管理学院')
DELETE FROM teacher WHERE id = 2
```
执行上述代码后,我们可以看到触发器T_teacherDel会输出一条提示信息,并且删除操作会被回滚,即之前删除的记录又被恢复了。
最后,如果我们想删除这个触发器,可以使用以下代码:
```
DROP TRIGGER T_teacherDel
```
希望我的回答能够帮助到你!
阅读全文