create proc up_xxx(@ret int output) as
begin
set xact_abort on
begin tran
delete from t_x where ... if @@error<>0
begin
rollback tran
set @ret=0
end insert into t_x select .... if @@error<>0
begin
rollback tran
set @ret=0
end update t_x set size='c+1' where ... if @@error<>0
begin
rollback tran
set @ret=0
end set @ret=1
commit tran
end如上面的存储过程在执行过程中产生回滚了,请问调用后@ret返回来会=0么?事务回滚了,sqlserver会返回一个值,
由C#,delphi那边的客户端去捕获,
然后告知使用者操作实际上没成功。
begin
set xact_abort on
begin tran
delete from t_x where ... if @@error<>0
begin
rollback tran
set @ret=0
end insert into t_x select .... if @@error<>0
begin
rollback tran
set @ret=0
end update t_x set size='c+1' where ... if @@error<>0
begin
rollback tran
set @ret=0
end set @ret=1
commit tran
end如上面的存储过程在执行过程中产生回滚了,请问调用后@ret返回来会=0么?事务回滚了,sqlserver会返回一个值,
由C#,delphi那边的客户端去捕获,
然后告知使用者操作实际上没成功。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货