嵌套事務的回滾與提交

嵌套事務的回滾與提交

ID:10003029

大?。?9.00 KB

頁數(shù):10頁

時間:2018-05-20

嵌套事務的回滾與提交_第1頁
嵌套事務的回滾與提交_第2頁
嵌套事務的回滾與提交_第3頁
嵌套事務的回滾與提交_第4頁
嵌套事務的回滾與提交_第5頁
資源描述:

《嵌套事務的回滾與提交》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、嵌套事務的回滾與提交一、嵌套事務和事務保存點的錯誤處理1、對于嵌套事務。1.外部起事務,內部起事務,內外都有TryCatch內部出錯:如果內部事務出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。外部出錯:如果外部事物出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。注:如果內部的事務不起事務名稱,內部如果出錯,將會回滾掉會話中的全部事務,而且報異常。2.外部起事務,內部起事務,內部沒有TryCatch內部出錯:如果內部事務出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存

2、在,但是之后的操作繼續(xù)執(zhí)行。外部出錯:如果內部事務出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。3.外部起事務,內部不起事務,但有TryCatch。內部出錯:外部事物正常提交,外部事物不會進入ROLLBACK,內部出錯之后的記錄也會正常執(zhí)行。內部操作中,Try部分在錯誤出現(xiàn)之前的操作正常,Try部分在操作之后的操作不執(zhí)行,然后進入Catch塊中執(zhí)行操作。外部出錯:內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。4.外部起事務,內部不起事務,但沒有TryCatch.內部出錯:如果內

3、部事務出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。外部出錯:如果內部事務出錯,內部和外部事物全部回滾,外部回滾之前的操作全部不存在,但是之后的操作繼續(xù)執(zhí)行。5.外部不起事務,內部起事務,但有TryCatch.內部出錯:外部操作被正常執(zhí)行,內部ROLLBACK操作前全部回滾,之后的操作正常執(zhí)行。外部出錯:出錯操作之前的操作不會回滾,出錯之后的操作不執(zhí)行,跳入Catch塊中,內部事務不會回滾。6.外部不起事務,內部起事務,但沒有TryCatch.內部出錯:外部操作被正常執(zhí)行,內部ROLLBACK操作前全部回滾。

4、由于沒有catch塊,所以外部操作全部執(zhí)行。外部出錯:內部事務正常提交,外部只有當條記錄失敗,其他操作正常執(zhí)行,但是有嚴重錯誤報出來。對于事務保存點事務保存點只有SAVE和ROLLBACK操作,當外部調用內部保存點,內部出現(xiàn)問題不影響外部事務,外部操作正常執(zhí)行。當外部操作出現(xiàn)問題時,內部所有操作都回滾掉。如:外部起事務,內部起保存點,內外都有TryCatch內部出錯:外部操作正常,不進入Catch,內部事務回滾到保存點,之后的繼續(xù)執(zhí)行。外部出錯:如果外部事物在保存點之前出現(xiàn)異常,那么外部和內部所有操作回滾。如果外部事物在保存點之前出現(xiàn)異常,由于保

5、存點已經(jīng)提交了事務,導致外部rollback找不到對應的事務點。二、事務的嵌套PRINT'Trancountbeforetransaction:'+CAST(@@TRANCOUNTaschar(1))BEGINTRANPRINT'AfterfirstBEGINTRAN:'+CAST(@@TRANCOUNTaschar(1))BEGINTRANPRINT'AftersecondBEGINTRAN:'+CAST(@@TRANCOUNTaschar(1))COMMITTRANPRINT'AfterfirstCOMMITTRAN:'+CAST(@@TRA

6、NCOUNTaschar(1))COMMITTRANPRINT'AftersecondCOMMITTRAN:'+CAST(@@TRANCOUNTaschar(1))在結果中,可以看到每一個BEGINTRAN語句都會使@@TRANCOUNT增加1并且每一個COMMITTRAN語句都會使其減少1。如前所述,一個值為0的@@TRANCOUNT意味著沒有打開的事務。因此,在@@TRANCOUNT值從1降到0時結束的事務發(fā)生在外層事務提交的時候。因此,每一個內部事務都需要提交。由于事務起始于第一個BEGINTRAN并結束于最后一個COMMITTRAN,因此

7、最外層的事務決定了是否完全提交內部的事務。如果最外層的事務沒有被提交,其中嵌套的事務也不會被提交。鍵入并執(zhí)行以下批來檢驗事務回滾時所發(fā)生的情況:BEGINTRANPRINT'After1stBEGINTRAN:'+CAST(@@TRANCOUNTaschar(1))BEGINTRANPRINT'After2ndBEGINTRAN:'+CAST(@@TRANCOUNTaschar(1))BEGINTRANPRINT'After3rdBEGINTRAN:'+CAST(@@TRANCOUNTaschar(1))UPDATEData1SETvalue1=

8、1000000WHEREId=1COMMITTRANPRINT'AfterfirstCOMMITTRAN:'+CAST(@@TRANCO

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。