首页 > 技术文章 > 关于触发器

ykgbk 2017-12-12 16:04 原文

inserted存放进行insert和update操作后的数据,

deleted存放进行delete和update操作前的数据,

他们是触发器执行时用到的两张特殊表,也可以说是种临时表,是在进行激活触发器时由系统自动生成

 

如你给了数据库里两张表,一张学生表(Student),一张成绩表(Score)。当你想要在学生表中删除某个学生的同时,也想把成绩表中的该学生的信息也删掉,可以这样写

create trigger d on Student

for delete

as

delete Score from Score s, deleted d where s.id=d.id

 

 

当你修改学生的id(标识除外)不修改除学生id外的其他信息,又同时更新成绩表中该学生的id

create trigger u on Student

for update

as

begin

if update(id)

update Score set id=i.id from Score s,inserted i,deleted d where d.id=s.id

end

 

推荐阅读