日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL SERVER 事务处理

發布時間:2023/12/13 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL SERVER 事务处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

<1>.事務的概念
????????? 事務是一個不可分割的工作邏輯單元。
<2>.為什么使用事物
????????? 可以防止錯誤的發生。
<3>.事物的作用
????????? 要么所有的操作全部完成,要么所有操作都不執行。
<4>.什么是事物
????????? 事務是單個的工作單元
??????????? 如果某一事務成功,則在該事務中進行的所有的數據更改均會提交,稱為數據庫中的永久組成部分。
??????????? 如果事務遇到錯誤且必須取消或回滾,則所有數據更改均被清楚。
<5>.事務的特性
??????????? 事務必須具備以下四個屬性,簡稱ACID 屬性:
???????????? (1).原子性(Atomicity):事務是一個完整的操作。事務的各步操作是不可分的(原子的);要么都執行,要么都不執行。
???????????? (2).一致性(Consistency):當事務完成時,數據必須處于一致狀態。
???????????? (3).隔離性(Isolation):對數據進行修改的所有并發事務是彼此隔離的,這表明事務必須是獨立的,它不應以任何方式依賴于或影響其他事務。
???????????? (4).永久性(Durability):事務完成后,它對數據庫的修改被永久保持,事務日志能夠保持事務的永久性。
<6>.如何創建事務
???????????1. T-SQL使用下列語句來管理事務:
???????????? (1).開始事務:BEGIN TRANSACTION
???????????? (2).提交事務:COMMIT TRANSACTION
???????????? (3).回滾(撤銷)事務:ROLLBACK TRANSACTION
?????????? 2.? 一旦事務提交或回滾,則事務結束。
???????????? (1).判斷某條語句執行是否出錯:
???????????? (2).使用全局變量@@ERROR;
???????????? 3).@@ERROR只能判斷當前一條T-SQL語句執行是否有錯,為了判斷事務中所有T-SQL語句是否有錯,我們需要對錯誤進行累計;??????????
?????????????? 如:SET @errorSum=@errorSum+@@error
<7>.事務的分類
??????????? (1).顯示事務:用BEGIN TRANSACTION明確指定事務的開始,這是最常用的事務類型
??????????? (2).隱性事務:通過設置SET IMPLICIT_TRANSACTIONS ON 語句,將隱性事務模式設置為打開,下一個語句自動啟動一個新事務。當該事務完成時,再????????????? 下一個 T-SQL 語句又將啟動一個新事務
??????????? (3).自動提交事務:這是 SQL Server 的默認模式,它將每條單獨的 T-SQL 語句視為一個事務,如果成功執行,則自動提交;如果錯誤,則自動回滾。
<8>.創建事務的原則
??????????? 創建事務時要遵守一下的原則:
???????????? (1).事務要盡可能的簡短
???????????? (2).在事務中訪問的數據量要盡量最少
???????????? (3).瀏覽數據是盡量不要打開事務
???????????? (4).在事務處理期間不要請求用戶輸入
<9>.Transact-SQL中使用哪些語句管理事務?
??????????? 開始事務:begin transaction
??????????? 提交事務:commit transaction
??????????? 回滾事務:rollback transaction?
<10>.使用事務的注意事項
??????????? (1).在每個操作之后,都要檢查@@error或rowcount的值;
??????????? (2).當一個事務結束之后,緊跟在事務之后的T-SQL代碼可以繼續執行,但是出錯后不能再回滾事務了;
??????????? (3).已經提交完畢的事務會將數據正式寫入數據庫;
??????????? (4).在一個事務執行時,如果發生如斷電等意外事件,則在下次重新啟動系統時,該事務會自動回滾;
??????????? (6).在事務里發生錯誤是的事務無法執行下去,事務也會自動回滾;
??????????? (7).無法回滾的語句不能在事務中使用。
<11>.事務的工作原理
??????????? (1).在事務開始時,SQLServer會將要修改的數據鎖定,同時創建一個臨時的事務日志,在該臨時的事務日志里存放更改的數據和更改的存儲過程。
??????????? (2).在事務未提交之前,事務中所有的數據操作是臨時的,一旦發生數據操作失敗,就使用臨時日志里的數據去回滾事務操作,并解除鎖定。在事務????????????? 被成功提交后,數據庫就將臨時的事務日志的內容存儲到數據庫中,此時事務操作完成。
<12>.事務的隔離級別
??????????? 在SQL Server 中事務的隔離級別由低到高分為5個級別
?????????????? (1).Read uncommitted:不隔離數據
?????????????? (2).Read committed:不允許讀取沒有提交的數據
?????????????? (3).Repeatable Read:在事務中鎖定所讀取的數據不讓別人修改和刪除。
???????????????(4).Snashot:快照隔離,可以為讀取數據的事務提供所需數據的一個已提交的版本。
?????????????? (5).Serializable:將事務所要用到的數據表全部鎖定,不與許其它事務添加、修改和刪除數據。

?

轉載于:https://www.cnblogs.com/ranfang/archive/2013/05/03/3057237.html

總結

以上是生活随笔為你收集整理的SQL SERVER 事务处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。