触发器中2个虚拟的表deleted 表和inserted 表
deleted 表:比如在A表中已经定义好的一个触发器,再删除的时候才会触发;在执行delete语句的时候,会在deleted表中新增数据。数据就是执行删除语句的数据。
inserted 表:同理deleted表,再执行insert语句的时候,会在inserted表中新增数据。
在执行update语句的时候,会同时在deleted表中和inserted表中添加数据。不同的是,inserted表中新增的数据是执行完了update语句之后的新数据,而deleted表中则是update语句执行之前的旧数据。
for触发器,after触发器和Instead Of 触发器这3种触发器的对比
for触发器和after触发器一样(个人理解)
after触发器(for触发器):在A表中定义好了一个触发器,这个触发器是在执行insert语句之后,在B表中再次执行插入语句。如果是after触发器,那么在执行insert语句的时候,不管触发器怎么回事,都会先给A表中insert。然后再去触发器中执行逻辑,逻辑通过,给B表中insert。
Instead Of 触发器:不同于after触发器,在执行insert’语句之后,不会直接对A表进行insert,而是去触发器中走自己写的逻辑,如果逻辑通过,才会insert。