中间提交以及回滚

时间:2017-05-30 08:56:06

标签: sql c

我已经发出保存点以在C中提交300条记录。然而,一旦致命(除以0),我会想要回滚处理的记录,以及更新一个表来记录这个致命的记录。我怎么能单独为这个致命的表提交并回滚以前的记录。

1 个答案:

答案 0 :(得分:0)

如果您使用SQL server:

使用TRY - CATCH方法:如果发生了致命错误,那么它会捕获阻塞和回滚事务,并在该回滚后将致命记录更新到一个表中。如果发生致命错误,则不会像往常一样提交事务。

 CREATE PROCEDURE Procedure_Name
 (
  @Parameter1 Data_type, 
  @Parameter2 Data_type
 ) 
 AS
 BEGIN TRY

    --- your SQL statements
    COMMIT TRAN

 END TRY
 BEGIN CATCH
    ROLLBACK TRAN

    --After rollback fatal record SQL statements      
      INSERT (or) UPDATE your fatal record
 END CATCH