执行查询(查询也调用存储过程)会抛出错误:
ROLLBACK TRANSACTION请求没有相应的BEGIN TRANSACTION。
但是,在SQL Server中执行存储过程不会产生任何错误。
存储过程在结束后回滚:
begin
set nocount on;
begin transaction
begin try
....
commit transaction;
end try
begin catch
if (@@trancount > 0) begin
rollback
end;
end catch
end;
答案 0 :(得分:0)
您需要修复确切的错误消息
use tempdb
begin
set nocount on;
begin transaction
begin try
create table foo1 (i int);
commit transaction;
end try
begin catch
if (@@trancount > 0) begin
select ERROR_NUMBER();
select ERROR_MESSAGE();
rollback
end;
end catch
end;