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