【T_SQL】 基础 事务
生活随笔
收集整理的這篇文章主要介紹了
【T_SQL】 基础 事务
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、使用 T-SQL 語(yǔ)句來(lái)管理事務(wù)?
? ? ?開(kāi)始事務(wù):BEGIN TRANSACTION?
? ? ?提交事務(wù):COMMIT TRANSACTION?
? ? ?回滾(撤銷(xiāo))事務(wù):ROLLBACK TRANSACTION?
2、判斷某條語(yǔ)句執(zhí)行是否出錯(cuò)?
? ? ?使用全局變量@@ERROR。@@ERROR 只能判斷當(dāng)前一條 T-SQL 語(yǔ)句執(zhí)行是否有錯(cuò),為了判斷事務(wù)中所有 T-SQL 語(yǔ)句是否有錯(cuò),我們需要對(duì)錯(cuò)誤進(jìn)行累計(jì);如: SET @errorSum=@errorSum+@@error?
3、事務(wù)必須具備 ACID 四個(gè)屬性?
? ? ?原子性(Atomicity):事務(wù)是一個(gè)完整的操作。事務(wù)的各步操作是不可分的(原子的);要么都執(zhí)行,要么都不執(zhí)行?? ? ?一致性(Consistency):當(dāng)事務(wù)完成時(shí),數(shù)據(jù)必須處于一致?tīng)顟B(tài)?
? ? ?隔離性(Isolation):對(duì)數(shù)據(jù)進(jìn)行修改的所有并發(fā)事務(wù)是彼此隔離的,這表明事務(wù)必須是獨(dú)立的,它不應(yīng)以任何方式依賴(lài)于或影響其他事務(wù)?
? ? ?永久性(Durability):事務(wù)完成后,它對(duì)數(shù)據(jù)庫(kù)的修改被永久保持,事務(wù)日志能夠保持事務(wù)的永久性?
4、事務(wù)的分類(lèi)?
? ? 顯示事務(wù):用 BEGIN TRANSACTION 明確指定事務(wù)的開(kāi)始,這是常用的事務(wù)類(lèi)型?? ? 隱性事務(wù):通過(guò)設(shè)置 SET IMPLICIT_TRANSACTIONS ON 語(yǔ)句,將隱性事務(wù)模式設(shè)置
?
? ? 為打開(kāi),下一個(gè)語(yǔ)句自動(dòng)啟動(dòng)一個(gè)新事務(wù)。當(dāng)該事務(wù)完成時(shí),再下一個(gè) T-SQL 語(yǔ)句又將啟動(dòng)一個(gè)新事務(wù)自動(dòng)提交事務(wù):這是 SQL Server 的默認(rèn)模式,它將每條單獨(dú)的 T-SQL 語(yǔ)句視為一個(gè)事務(wù),如果成功執(zhí)行,則自動(dòng)提交;如果錯(cuò)誤,則自動(dòng)回滾?
5、事務(wù)例句?
BEGIN TRANSACTION -- 開(kāi)始事務(wù) DECLARE @errorSum INT --定義變量接收錯(cuò)誤語(yǔ)句數(shù) SET @errorSum = 0 --初始化變量,無(wú)錯(cuò)誤 SQL 語(yǔ)句 1 SET @errorSum=@errorSum+@@error SQL 語(yǔ)句 2 SET @errorSum=@errorSum+@@error …… IF @errorSum <> 0 --產(chǎn)生錯(cuò)誤,回滾事務(wù) BEGIN ROLLBACK TRANSACTION END ELSE --如果無(wú)錯(cuò)誤,提交事務(wù) BEGIN COMMIT TRANSACTION END GO轉(zhuǎn)載于:https://www.cnblogs.com/DoubleEggs/p/5747143.html
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【T_SQL】 基础 事务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 无废话WCF系列教程 -- 李林峰
- 下一篇: SQLServer常见性能问题