事務(wù)(Transaction)是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執(zhí)行所引起,并用形如begin transaction和end transaction語句(或函數(shù)調(diào)用)來界定。事務(wù)由事務(wù)開始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。
創(chuàng)新互聯(lián)公司自2013年起,先為新化等服務(wù)建站,新化等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新化企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
當(dāng)一個(gè)事務(wù)的某一個(gè)操作發(fā)生問題時(shí),整個(gè)事務(wù)可以回滾掉,就像沒有做任何操作一樣。這就是事務(wù)回滾。
如果一個(gè)事務(wù)的所有操作均成功,則就可以提交事務(wù),保證事務(wù)的完整性。
應(yīng)用程序主要通過指定事務(wù)啟動(dòng)和結(jié)束的時(shí)間來控制事務(wù)。
以MS SQL Server的Transac-SQL語言為例,
事務(wù)啟動(dòng):
BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable [ WITH MARK [ 'description' ] ] ]
結(jié)束事務(wù)
可以使用 COMMIT 或 ROLLBACK 語句結(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
事務(wù)通俗點(diǎn)講,就是一條SQL語句,一個(gè)事務(wù)要么都執(zhí)行成功,要么都失敗,是不可分的最小單位,這是事務(wù)的原子性,同時(shí),事務(wù)還有一致性,隔離性,持久性。
sql server中事務(wù)的作用是如果任何一個(gè)語句操作失敗那么整個(gè)操作就被失敗,以后操作就會(huì)回滾到操作前狀態(tài),或者是上個(gè)節(jié)點(diǎn)。為了確保要么執(zhí)行,要么不執(zhí)行,就可以使用事務(wù)。是指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序邏輯執(zhí)行單元(unit)。
擴(kuò)展資料:
事務(wù)通常由高級(jí)數(shù)據(jù)庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執(zhí)行所引起,并用形如begin transaction和end transaction語句(或函數(shù)調(diào)用)來界定。事務(wù)由事務(wù)開始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。
一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。
方法一:寫存儲(chǔ)過程
方法二:sql執(zhí)行對(duì)象分開執(zhí)行,單獨(dú)出來。