数据库的触发器简单理解

旧巷老猫 提交于 2020-01-19 16:23:23

首先,需要至少两张表,否则就不能体现触发器的功能
说道功能,个人认为就是当一张表发生改变,可能是字段有改变,或者表结构改变(?没试过),
另一张表会发生对应的变化。例如:一张表的某一个字段发生改变,另外一张表的某个字段同时也发生变化,(类似打喷嚏顺便闭眼?)
下面举个小例子:
建立一张学生表,建立一个班级表
create table Student(
studentID int identity(1,1) primary key not null,
studentName varchar(50)
)

create table Class(
classID int identity(1,1) primary key not null,
className varchar(50),
studentID int not null
)
假如我是老师,有一天我突然想改变一个学生的ID,那么在class表里对应的studentID也得变
那么对应的触发器应该是以下:
Create Trigger Trigger_Student
  On Student --在Student表中创建触发器
  for Update --为什么事件触发 (为更新)
  As --事件触发后所要做的事情
  if Update(StudentID)
  begin
Update Class --想要触发器作用的表
  Set StudentID=i.StudentID
  From Class c
  Where c.StudentID=d.StudentID
end

注:这个时候一定要记住两张表得有数据,然后建立触发器的表进行update,另外那张表才会变(人都不在怎么打喷嚏?)

上述有一个小错误,会导致触发器失败,主表你想要update的字段可不能是 identity的,否则必失败。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!