Skip to content

触发器

作者:Lee 等
最后更新:

定义

触发器是特殊的存储类型,满足条件自动执行。

触发器的类型

DML 触发器(常考)

前触发器 / 后触发器: AFTER 触发器和 INSTEAD OF 触发器两种

按照触发动作分: insert update delete

DDl

语法

sql
create trigger 名字
on 表名/视图名
after delete
as
  begin
end

创建 update 触发器(后触发器)

sql
create trigger trl
on course
after update
as
begin
  if update(条件)
    begin
    print '禁止修改学分'
    rollback -- 回滚
  end
end

创建 DELETE 触发器

例:如果某个学生退学,当删除 Student 表中某个学生的记录时,SelectCourse 表中相应学号的记录也被同时删除

sql
create trigger tl
on Student
after delete
as
begin
  if existe(select * from SelectCourse,delete where SelectCourse.StudentID)
    begin delete from SelectCourse
    where SelectCourseStudentID = (select studentID from delete)
end

页面历史