首先,需要至少两张表,否则就不能体现触发器的功能
说道功能,个人认为就是当一张表发生改变,可能是字段有改变,或者表结构改变(?没试过),
另一张表会发生对应的变化。例如:一张表的某一个字段发生改变,另外一张表的某个字段同时也发生变化,(类似打喷嚏顺便闭眼?)
下面举个小例子:
建立一张学生表,建立一个班级表
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的,否则必失败。
来源:CSDN
作者:国服第一邓特蒙
链接:https://blog.csdn.net/Dentmon/article/details/104040713