1
数据库技术及应用
1.10.4.2 7.4.2 触发器的工作机制
7.4.2 触发器的工作机制

1.触发器中使用的特殊表

执行触发器时,系统自动创建了两个特殊的逻辑表:inserted表和deleted表。用户不能对这两个表进行修改,它们存在于内存中而不是数据库中。触发器执行完成后,这两个表也被自动删除。

●inserted逻辑表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted逻辑表中。

●deleted逻辑表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录被存放到deleted逻辑表中。

修改一条记录等于删除一条旧记录,同时插入一条新记录。当对UPDATE触发器的记录表修改时,表中原记录移到deleted逻辑表中,修改过的记录插入到inserted逻辑表中。

2.触发器的工作机制

1)INSERT触发器工作原理

当一个记录插入到表中时,INSERT触发器自动触发执行,系统创建一个inserted表,新的记录被增加到该触发器表和inserted表中。触发器可以检查inserted表,以确定该触发器里的操作是否应该执行和如何执行。

2)DELETE触发器工作原理

当从表中删除一条记录时,DELETE触发器自动触发执行,系统创建一个deleted表,被删除的记录被移到deleted表中。触发器可以检查deleted表,以确定该触发器里的操作是否应该执行和如何执行。

3)UPDATE触发器工作原理

数据更新可以看成是由删除一条旧记录的DELETE语句和插入一条新记录的INSERT语句组成的。当某一个触发器表上面修改一条记录时,UPDATE触发器自动触发执行,系统创建一个deleted表和inserted表,表中原记录移到deleted表中,修改过的记录插入到inserted表中。触发器可以检查inserted表、deleted表以及被修改的表,以确定是否修改了数据行和应该如何执行该触发器里的操作。