resident
یک شنبه 17 فروردین 1393, 18:30 عصر
سلام.
من sp ی زیر رو دارم.
CREATE Procedure MainSp
@Parameters ...
,@ErrorNumber int out
as
Begin
Begin Transaction
exec sp1 @Parameters,@ErrorNumber out
if @ErrorNumber!=0
ROLLBACK TRANSACTION;
exec sp2 @Parameters,@ErrorNumber out
if @ErrorNumber!=0
ROLLBACK TRANSACTION;
COMMIT TRANSACTION;
End
مشکلم اینه که در if ها وقتی @ErrorNumber برابر صفر است، rollbackنمی کنه. Trace که می کنم روی دستور rollback میره اما میره دستورهای بعدی رو هم اجرا می کنه.
چرا این اتفاق می افته؟
من sp ی زیر رو دارم.
CREATE Procedure MainSp
@Parameters ...
,@ErrorNumber int out
as
Begin
Begin Transaction
exec sp1 @Parameters,@ErrorNumber out
if @ErrorNumber!=0
ROLLBACK TRANSACTION;
exec sp2 @Parameters,@ErrorNumber out
if @ErrorNumber!=0
ROLLBACK TRANSACTION;
COMMIT TRANSACTION;
End
مشکلم اینه که در if ها وقتی @ErrorNumber برابر صفر است، rollbackنمی کنه. Trace که می کنم روی دستور rollback میره اما میره دستورهای بعدی رو هم اجرا می کنه.
چرا این اتفاق می افته؟