髒讀:一個事務讀取到了另外一個事務沒有說起的數據ide
不可重複讀:在一個事務中,兩次讀取同一數據獲得內容不一樣事務
幻讀:在同一事物中,用一樣的操做讀取兩次,獲得的記錄數不相同it
事務的隔離級別:
Read Uncommitted
數據讀取時不須要鎖定
Read Committed
數據讀取時須要共享鎖定
Repeatable Read
數據讀取時須要排他鎖
Serializable
事務必須等同於串行執行io
注意不管任什麼時候候更新行都必需要有排他鎖。
插入行不須要鎖。
在Read Committed隔離級別下,數據讀取完畢後當即釋放共享鎖,而在Repeatable Read隔離級別下,事務保持共享table
鎖直到整個事務結束。class
在SQL Server中調整事務隔離級別是針對會話的,set tran isolation level後,會話中後來開始的事務都在此隔數據
離級別上執行。一個事務只能具備一個隔離級別。同一會話中的全部事務必須串行執行。必須經過begin tran語句來覆蓋默認事務範圍tab