关于触发器的简单理解
程序员文章站
2024-02-26 23:58:28
...
首先,两张表,才能体现触发器的功能
功能,就是当其中一张表发生改变,可能是字段有改变,或者表结构改变,另一张表会发生对应的变化。例如:一张表的某一个字段发生改变,另外一张表的某个字段同时也发生变化
触发器的优点:
触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。
触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。
与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。
触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。
一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。
例:
新建两张表 ,加上关系
插入一些数据
然后写一个触发器
create trigger tri_upd
on Books for update as
declare @oldtypeID int
declare @newtypeID int
select @oldtypeID=TypeID from deleted
select @newtypeID=TypeID from inserted
update bookType set Nums = Nums-1 where aaa@qq.com
update bookType set Nums = Nums+1 where aaa@qq.com
当Books表中TypeID发生变化,booktypes中Nums也会发生变化。