一、学习目标
熟悉触发器的定义和使用
二·、实验环境
Windows 11
Sql server2019
三、实验内容
学生(学号,年龄,性别,系名)
课程(课号,课名,学分,学时)
选课(学号,课号,成绩)
(1)建立学生表的insert触发器,若向学生表中插入一条记录,则自动向选课表中插入一行,令该生选一门选修人数最多的课。
(2)在建立学生表的delete触发器,若选课表中该生有选课记录,则拒绝删除,要求在删除学生信息同时,将相关表中的信息全部删除。
四、SQL代码
初始数据:
修改后的数据:
五、小结
触发器(rigger)是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,触发器将被保存在数据库服务器中。任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。触发器类似于约束,但是比约束更加灵活,可以实施更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
在同一个事务中的不同执行语句,如果后面语句中的操作触发了相应表的触发器,则在触发器内可以查看前面语句执行后的结果列表的内容,所以,在使用触发器的时候,对事物中多条语句的操作的顺序是要考虑清楚的。如果我们使用触发器+数据表的形式来对数据进行一些统计性的操作的时候,我们在保证触发器逻辑完整性的前提下,最好能通过数据库任务的方式来定时进行检查,但对于人为的数据库操作有时却是无能为力的,所以,为了避免这样的错误发生,有必要对统计结果做定期的校验,保证数据的正确性。