|
我在存储过程中要调用n个别的存储,一个存储不成功,就要回滚,改如何来作呢?
CREATE PROCEDURE OnlineHanding
@UserName VARCHAR( 50 ),
@ContractID UNIQUEIDENTIFIER
AS
BEGIN TRANSACTION
DECLARE @ErrMessage BIT
-----第一步处理不合格数据
EXEC OnlineCheckData @UserName
------更新 MST_AirlineId 和 FraeGoupID ,RoutingI,以及检查和插入Routing和插入相关的表AirPortGroup,AirPortElement
EXEC OnlineUpdateData @UserName, @ContractID ,@ErrMessage OUTPUT
--其他的操作......
...........
IF @@ERROR = 0
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION
--这句delete是一定要做的
DELETE OnlineTempTable WHERE Operator = @UserName
GO
|
|