如果我在表上有AFTER INSERT, UPDATE
触发器,并且触发器失败(导致错误),是否会导致原始INSERT
或UPDATE
失败?我知道触发器发生在(因此AFTER
关键字)之后,但它是否中止事务(隐式或显式)等?
特别关注SQL Server 2005,但我对2000,2005和2008的信息很感兴趣.TIA。
答案 0 :(得分:0)
啊,发现an article说它确实如此,至少在SQL Server 2000中。引用:
当您处于触发器中时,您有触发上下文,或者您处于直接或间接从触发器调用的存储过程,用户定义函数或动态SQL块中。也就是说,在调用堆栈的某个地方,有一个触发器。如果您处于触发器上下文中,则所有错误都会终止批处理并在现场回滚事务。