直接在存儲(chǔ)過(guò)程結(jié)束之前添加以下代碼:EXCEPTIONWHENOTHERSTHENrollback;解釋?zhuān)阂陨险Z(yǔ)句的意思是當(dāng)出現(xiàn)任何錯(cuò)誤的時(shí)候,直接回滾整個(gè)事務(wù)。備注:存儲(chǔ)過(guò)程中建議沒(méi)有特殊需求的情況下,在執(zhí)行結(jié)束之前不要進(jìn)行commit,否則在中途提交,后面的代碼保存,只能回滾到commit的位置。
創(chuàng)新互聯(lián)主營(yíng)吉林網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都APP應(yīng)用開(kāi)發(fā),吉林h5重慶小程序開(kāi)發(fā)搭建,吉林網(wǎng)站營(yíng)銷(xiāo)推廣歡迎吉林等地區(qū)企業(yè)咨詢(xún)
sql server中事務(wù)的作用是如果任何一個(gè)語(yǔ)句操作失敗那么整個(gè)操作就被失敗,以后操作就會(huì)回滾到操作前狀態(tài),或者是上個(gè)節(jié)點(diǎn)。為了確保要么執(zhí)行,要么不執(zhí)行,就可以使用事務(wù)。是指訪問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序邏輯執(zhí)行單元(unit)。
擴(kuò)展資料:
事務(wù)通常由高級(jí)數(shù)據(jù)庫(kù)操縱語(yǔ)言或編程語(yǔ)言(如SQL,C++或Java)書(shū)寫(xiě)的用戶(hù)程序的執(zhí)行所引起,并用形如begin transaction和end transaction語(yǔ)句(或函數(shù)調(diào)用)來(lái)界定。事務(wù)由事務(wù)開(kāi)始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。
一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。
事務(wù)(Transaction)是訪問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫(kù)操縱語(yǔ)言或編程語(yǔ)言(如SQL,C++或Java)書(shū)寫(xiě)的用戶(hù)程序的執(zhí)行所引起,并用形如begin transaction和end transaction語(yǔ)句(或函數(shù)調(diào)用)來(lái)界定。事務(wù)由事務(wù)開(kāi)始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。
當(dāng)一個(gè)事務(wù)的某一個(gè)操作發(fā)生問(wèn)題時(shí),整個(gè)事務(wù)可以回滾掉,就像沒(méi)有做任何操作一樣。這就是事務(wù)回滾。
如果一個(gè)事務(wù)的所有操作均成功,則就可以提交事務(wù),保證事務(wù)的完整性。
應(yīng)用程序主要通過(guò)指定事務(wù)啟動(dòng)和結(jié)束的時(shí)間來(lái)控制事務(wù)。
以MS SQL Server的Transac-SQL語(yǔ)言為例,
事務(wù)啟動(dòng):
BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ]
結(jié)束事務(wù)
可以使用 COMMIT 或 ROLLBACK 語(yǔ)句結(jié)束事務(wù)。
1 事務(wù)的提交
BEGIN TRANSACTION T1
INSERT tabel1 ...
UPDATE table2 ...
...
/* 當(dāng)所有成功操作完成,提交事務(wù) */
COMMIT TRAN T1
2 事務(wù)的回滾
BEGIN TRANSACTION T1
INSERT tabel1 ...
...
/* 當(dāng)發(fā)生錯(cuò)誤或事務(wù)被取消, 回滾事務(wù) */
ROLLBACK TRAN T1