declare @p_fhdm varchar(10),
@p_fhxx varchar(100)
begin try
begin tran
--正常处理,如果没错就commit ,如果有错就会跳到 catch
commit tran
end try
begin catch
IF @@TRANCOUNT > 0
begin
rollback tran --数据回滚,但是程序继续往下执行
end
select @p_fhdm= ERROR_NUMBER()
select @p_fhxx= ERROR_MESSAGE()
end catch
注意:
在begin tran 和end tran之间不能直接return,在return之前要么加rollback tran ,要么加commit tran,否则会造成死锁。