sqlserver基本介紹 什么是SQLSERVER事務(wù)處理和事務(wù)回滾?
什么是SQLSERVER事務(wù)處理和事務(wù)回滾?--啟動(dòng)事務(wù)beginntert1--insert插入[選課表]([學(xué)號(hào)],[課程代碼])值(“20100021”,“01”)插入[選課表]([學(xué)號(hào)],[課
什么是SQLSERVER事務(wù)處理和事務(wù)回滾?
--啟動(dòng)事務(wù)
beginntert1
--insert
插入[選課表]([學(xué)號(hào)],[課程代碼])值(“20100021”,“01”)
插入[選課表]([學(xué)號(hào)],[課程代碼])值(“20100021”,“02”)
插入[選課表]([學(xué)號(hào)],[課程代碼])值(“20100021”,“03”)
—判斷同一學(xué)號(hào)選擇的課程數(shù)是否匹配If(selectcount([學(xué)號(hào)])ascnfrom其中[學(xué)號(hào)]=“20100021”)>4
begin
—不一致,回滾事務(wù)
rollbacktrant1
end
else
begin
--一致,提交事務(wù)
提交事務(wù)1
end
事務(wù)可以看作是由數(shù)據(jù)庫(kù)上的幾個(gè)操作組成的一個(gè)單元。這些操作要么被完成,要么被取消,以確保數(shù)據(jù)滿(mǎn)足一定的一致性要求。交易的一個(gè)典型例子是銀行的轉(zhuǎn)賬操作。賬戶(hù)a向賬戶(hù)B轉(zhuǎn)賬一定金額,此操作包括兩個(gè)步驟:一個(gè)是從賬戶(hù)a減去一定金額,另一個(gè)是將相同金額加到賬戶(hù)B。顯然,這兩個(gè)步驟要么完成要么取消,否則銀行將蒙受損失。顯然,這個(gè)轉(zhuǎn)移操作中的兩個(gè)步驟構(gòu)成了一個(gè)事務(wù)。R數(shù)據(jù)庫(kù)中的事務(wù)還具有以下acid特性。R acid是四個(gè)英語(yǔ)單詞的第一個(gè)字母。這四個(gè)英語(yǔ)單詞是原子性、一致性、孤立性和持久性,分別翻譯成原子性、一致性、孤立性和持久性。SQLServer中有三種事務(wù)類(lèi)型:隱式事務(wù)、顯式事務(wù)和自動(dòng)提交事務(wù)。默認(rèn)值為自動(dòng)提交。R Oracle中沒(méi)有SQL Server的事務(wù)類(lèi)型。默認(rèn)情況下,任何DML語(yǔ)句都會(huì)啟動(dòng)一個(gè)事務(wù),直到用戶(hù)發(fā)出commit或rollback操作,事務(wù)才會(huì)結(jié)束,這類(lèi)似于sqlserver的隱式事務(wù)模式。