to gahade(与君共勉)
1、我完全理解你对一致性的解释,也完全理解对于Insead of 触发器跟insert语句是一个统一的整体事务.
2、我遇到的难题是,想找出一个不一致的东东,就是后面的触发操作对前面已完成的操作没有任何影响,我不要一致性,不一致才好呢,呵呵.(这就是我前面的说得发邮件的例子,比如插入成功了,我发邮件,如果我发不出邮件也不会影响之前的插入).
3、我之所以想不通不是你所说的触发器整体事务,而是细化分类的instead of触发器和after触发器的差别:
instead of 是前触发,就是在执行sql语句前就把执行触发器。所以触发器不成功,后面的sql语句也执行不了,而且触发器成功的部分也回滚,一点问题也没有
after是后触发,既然是后触发,就应该有明显的与前触发的区别,可是站在用户角度,前触发后触发的结果是完全一样的,只要你触发器出错,我的数据就是插不进去。那还煞有介事的分什么instead of和after和for三种干什么,就设立一种触发器得了
to gahade(与君共勉)
如果是表约束我能理解,它的地位就相当于instead of触发器,要想一致,你通过我,无论哪一段出问题,都得有连带责任,一损俱损一荣俱荣。
你写的那段代码也是实际上after触发器运行的原理
begin tran
insert into 表
select '11'
触发器代码...