1. 程式人生 > >在SQL SERVER中實現事務的部分回滾

在SQL SERVER中實現事務的部分回滾

1.儲存點:是一種實現部分回滾的方法。可以給一個儲存點起一個名字,以便在後面的事務中可以回滾到儲存點。 2.實現程式碼。 BEGIN TRANSACTION Transaction_Name
SQL_Statement1
SQL_Statement2     SAVE TRANSACTION Save_Name --設定儲存點    SQL_Statement3
SQL_Statement4 IF Test_Condition_Fails     ROLLBACK TRANSACTION Save_Name --回滾到儲存點 SQL_Statement5
SQL_Statement6 COMMIT TRANSACTION Transaction_Name 或 BEGIN TRANSACTION Transaction_Name
SQL_Statement1
SQL_Statement2
SAVE TRANSACTION Save_Name --設定儲存點 
SQL_Statement3
SQL_Statement4
IF Test_Condition_Fails)  
BEGIN     
    ROLLBACK TRANSACTION Save_Name --回滾到儲存點
    RETURN
END
ELSE
BEGIN
    SQL_Statement5
    SQL_Statement6
END
COMMIT TRANSACTION Transaction_Name 3.如果沒有儲存點時,ROLLBACK命令後面只能跟最外層事務的名字,而不能跟其他事務的名字。不論ROLLBACK命令在巢狀那一層發生時,如果其後沒有事務名,則將事務回滾整個事務到頂層,這和回滾最外層事務是一樣的。在巢狀事務中,不能僅回滾某一層事務,除非你指定了一個儲存點,然後回滾到儲存點。