日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > MS_SQL > SQL基礎(chǔ):SQL Server 事務(wù),異常和游標(biāo)詳解

SQL基礎(chǔ):SQL Server 事務(wù),異常和游標(biāo)詳解

時(shí)間:2024-02-05 12:47作者:下載吧人氣:18

事務(wù)

在數(shù)據(jù)庫(kù)中有時(shí)候需要把多個(gè)步驟的指令當(dāng)作一個(gè)整體來(lái)運(yùn)行,這個(gè)整體要么全部成功,要么全部失敗,這就需要用到事務(wù)。

1、 事務(wù)的特點(diǎn)

事務(wù)有若干條T-SQL指令組成,并且所有的指令昨晚一個(gè)整體提交給數(shù)據(jù)庫(kù)系統(tǒng),執(zhí)行時(shí),這組指令要么全部執(zhí)行完成,要么全部取消。因此,事務(wù)是一個(gè)不可分割的邏輯單元。

事務(wù)有4個(gè)屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)以及持久性(Durability),也稱作事務(wù)的ACID屬性。

原子性:事務(wù)內(nèi)的所有工作要么全部完成,要么全部不完成,不存在只有一部分完成的情況。

一致性:事務(wù)內(nèi)的然后操作都不能違反數(shù)據(jù)庫(kù)的然后約束或規(guī)則,事務(wù)完成時(shí)有內(nèi)部數(shù)據(jù)結(jié)構(gòu)都必須是正確的。

隔離性:事務(wù)直接是相互隔離的,如果有兩個(gè)事務(wù)對(duì)同一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作,比如讀取表數(shù)據(jù)。任何一個(gè)事務(wù)看到的所有內(nèi)容要么是其他事務(wù)完成之前的狀態(tài),要么是其他事務(wù)完成之后的狀態(tài)。一個(gè)事務(wù)不可能遇到另一個(gè)事務(wù)的中間狀態(tài)。

持久性:事務(wù)完成之后,它對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的影響是持久的,即使是系統(tǒng)錯(cuò)誤,重新啟動(dòng)系統(tǒng)后,該事務(wù)的結(jié)果依然存在。

2、 事務(wù)的模式

a、 顯示事務(wù)

顯示事務(wù)就是用戶使用T-SQL明確的定義事務(wù)的開(kāi)始(begin transaction)和提交(commit transaction)或回滾事務(wù)(rollback transaction

b、 自動(dòng)提交事務(wù)

自動(dòng)提交事務(wù)是一種能夠自動(dòng)執(zhí)行并能自動(dòng)回滾事務(wù),這種方式是T-SQL的默認(rèn)事務(wù)方式。例如在刪除一個(gè)表記錄的時(shí)候,如果這條記錄有主外鍵關(guān)系的時(shí)候,刪除就會(huì)受主外鍵約束的影響,那么這個(gè)刪除就會(huì)取消。

可以設(shè)置事務(wù)進(jìn)入隱式方式:set implicit_transaction on;

c、 隱式事務(wù)

隱式事務(wù)是指當(dāng)事務(wù)提交或回滾后,SQL Server自動(dòng)開(kāi)始事務(wù)。因此,隱式事務(wù)不需要使用begin transaction顯示開(kāi)始,只需直接失業(yè)提交事務(wù)或回滾事務(wù)的T-SQL語(yǔ)句即可。

使用時(shí),需要設(shè)置set implicit_transaction on語(yǔ)句,將隱式事務(wù)模式打開(kāi),下一個(gè)語(yǔ)句會(huì)啟動(dòng)一個(gè)新的事物,再下一個(gè)語(yǔ)句又將啟動(dòng)一個(gè)新事務(wù)。

3、 事務(wù)處理

常用T-SQL事務(wù)語(yǔ)句:

a、 begin transaction語(yǔ)句

開(kāi)始事務(wù),而@@trancount全局變量用來(lái)記錄事務(wù)的數(shù)目值加1,可以用@@error全局變量記錄執(zhí)行過(guò)程中的錯(cuò)誤信息,如果沒(méi)有錯(cuò)誤可以直接提交事務(wù),有錯(cuò)誤可以回滾。

b、 commit transaction語(yǔ)句

回滾事務(wù),表示一個(gè)隱式或顯示的事務(wù)的結(jié)束,對(duì)數(shù)據(jù)庫(kù)所做的修改正式生效。并將@@trancount的值減1;

c、 rollback transaction語(yǔ)句

回滾事務(wù),執(zhí)行rollback tran語(yǔ)句后,數(shù)據(jù)會(huì)回滾到begin tran的時(shí)候的狀態(tài)

4、 事務(wù)的示例

begin transaction tran_bank;
declare @tran_error int;
set @tran_error = 0;
begin try
update bank set totalMoney = totalMoney – 10000 where userName = ‘jack’;
set @tran_error = @tran_error + @@error;
update bank set totalMoney = totalMoney + 10000 where userName = ‘jason’;
set @tran_error = @tran_error + @@error;
end try
begin catch
print ‘出現(xiàn)異常,錯(cuò)誤編號(hào):’ + convert(varchar, error_number()) + ‘, 錯(cuò)誤消息:’ + error_message();
set @tran_error = @tran_error + 1;
end catch
if (@tran_error > 0)
begin
–執(zhí)行出錯(cuò),回滾事務(wù)
rollback tran;
print ‘轉(zhuǎn)賬失敗,取消交易’;
end
else
begin
–沒(méi)有異常,提交事務(wù)
commit tran;
print ‘轉(zhuǎn)賬成功’;
end
go
標(biāo)簽MSSQL,SQLServer,技術(shù)文檔,數(shù)據(jù)庫(kù),SQLSERVER

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過(guò)審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 美女做爰视频在线观看免费 | 宅女福利视频在线看免费网站 | 泰国情欲片寂寞的寡妇在线观看 | 国产成年人视频 | 日韩 国产 在线 | 午夜成人影视 | 成人爽爽大片在线观看 | 欧美大片在线观看成人 | 亚洲精品人成网线在线 | 国产理论视频在线观看 | 久久久久欧美精品网站 | 欧美一区亚洲二区 | 亚洲国产成人超福利久久精品 | 9191精品国产免费不久久 | 亚洲精品国产第一区二区多人 | 国产精品久久视频 | 最全精品自拍视频在线 | 久久久久国产 | 免费 欧美 自拍 在线观看 | 成人三级在线 | 日本午夜视频 | 特级毛片aaaa级毛片免费 | 欧美在线观看一区 | 亚洲精品久久久久中文 | 欧美成人三级网站 | 国产一区二区在线看 | 91热久久| 久久中文字幕乱码免费 | 2022国产精品手机在线观看 | 成人看片黄a在线观看 | 亚洲加勒比久久88色综合一区 | 亚洲a级片在线观看 | 国内精自线一二区 | 亚洲免费视频一区 | 精品亚洲视频在线 | 日韩成人小视频 | 成年人网站免费看 | 69成人做爰视频在线观看 | 亚洲第五色综合网啪啪 | 白嫩美女直冒白浆 | 精品日韩二区三区精品视频 |