日期:2014-05-18  浏览次数:20356 次

事务向两个表里保存数据,表触发器的执行.
有两个表A和B.
用事务向A和B里插入数据.A表建有After Insert的触发器.在触发器里有向C表插入数据的语句,该插入语句用到了B表的数据.

问触发器是在事务执行成功好触发还是A表有数据就直接触发?我刚试了了一下,触发器执行的时候娶不到B表里的数据.

------解决方案--------------------
事务提交前触发,after insert不是说事务执行完以后再插入数据,而是执行触发器内容的时候数据表上有数据。
我想你的意思应该是在一个事务上,先在A表插入数据,然后B表插入数据,想要得到的结果是A表+B表的数据的结果插入到C.如果这样的话你应该在 B表先插入数据,然后再插入A表数据,这样的话A和B有外键关系的话不行.最好不要用触发器实现,存储过程更好一点.
------解决方案--------------------
触发器本身就是事务,你的事务回滚,触发也应该回滚