从你说的那个错误来看应该是你少写了一个begin transaction
不过在那里我就不知道了。
我记得是如果报错就应该停止了。不会做后面的工作,而且前面的事务也应该一起回滚了。
楼上说的那个是抓住错误类型。在这里没用。如果你想抓的话,我建议你用print,每个begin和end之间写上一个特殊的内容,每次都用print显示出来了,这样到了你那个错误的位置的时候,你就能明显看到了。至少在显示的前后就是了。祝你好运。
先定义:
declare @errno int,
@errmsg varchar(255)
这里是产生错误的条件
begin
select @errno = 99999, @errmsg = ' 发现错误!! '
goto error
end
Return
error:
raiserror @errno @errmsg
rollback transaction
把你的触发器代码贴出来