4
我正在使用SQL Server Express 2008 w/AdventureWorksLT2008數據庫來了解讀取提交時的不同之處&未提交。瞭解SQL讀取提交和讀取未提交
根據維基百科: http://en.wikipedia.org/wiki/Isolation_%28database_systems%29
提交讀
數據查詢返回的記錄是由 一些 其他事務不被修改沒有阻止。
假設有一個名爲SalesLT.Address我運行此查詢的表和列AddressLine2所有行具有空值
然後:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
BEGIN TRANSACTION
update SalesLT.Address set AddressLine2 = 'new value'
BEGIN TRANSACTION
select AddressLine2 from SalesLT.Address
--Break Here
/*
COMMIT TRANSACTION
COMMIT TRANSACTION
*/
所以,你可以看到第一個交易還沒有提交,第二個交易開始查詢數據。
這導致:
那麼,爲什麼第二交易可檢索的幻像數據甚至一日交易仍然沒有提交?
要添加到此 - 打開一個新的SQL查詢窗口(實際上建立一個新的連接),並嘗試查詢您的表,而您的其他連接在事務中修改了它時,您會看到您的預期這裏 - 你的桌子將被鎖定。 – 2010-11-30 14:13:47