sql server 2008 触发器代码执行过程,发现错误怎么终止执行,不再执行后面的代码

rollback transaction 报错 说没有找到对应的 begin transaction
2025-03-23 01:22:48
推荐回答(3个)
回答1:

从你说的那个错误来看应该是你少写了一个begin transaction
不过在那里我就不知道了。

我记得是如果报错就应该停止了。不会做后面的工作,而且前面的事务也应该一起回滚了。

楼上说的那个是抓住错误类型。在这里没用。如果你想抓的话,我建议你用print,每个begin和end之间写上一个特殊的内容,每次都用print显示出来了,这样到了你那个错误的位置的时候,你就能明显看到了。至少在显示的前后就是了。祝你好运。

回答2:

先定义:
declare @errno int,
@errmsg varchar(255)
这里是产生错误的条件
begin
select @errno = 99999, @errmsg = ' 发现错误!! '
goto error
end
Return
error:
raiserror @errno @errmsg
rollback transaction

回答3:

把你的触发器代码贴出来