普通SQL事务:
begin transaction tr
declare @error int;
set @error=0;
select * from Car_Brand
set @error=@error+@@ERROR
select 1/0
set @error=@error+@@ERROR
select * from AREA
set @error=@error+@@ERROR
print 'i have executed!'
set @error=@error+@@ERROR
print '@@error:'+cast(@error as varchar(50))
if(@error<>0)
begin
print 'executed failed';
rollback transaction tr
end
else
begin
print 'executed success';
commit transaction tr
end
结合try catch 的SQL事务处理:
begin try
begin transaction tr
select * from Car_Brand
update car_log set [reason]='ceshiceshiceshi' where [modelid]=557;
select 1/0
print 'i have executed!'
select * from AREA
print 'executed success';
commit transaction tr
end try
begin catch
print 'executed failed';
rollback transaction tr
end catch