2009-04-22 41 views
1

使用隔離級別爲「讀取已提交快照」的SQL服務器,我們經常將數據寫入數據庫並在同一事務的上下文中進一步讀取。通常在從數據庫讀取數據時,我們會看到我們自己未提交的更改,但只能確定其他人所做的更改。我們假設這是預期的行爲。SQL Server - 讀取同一事務的未提交更改時的行爲不一致

我們現在發現,在一些比較罕見的情況下,我們看不到我們編寫的值 - 只有以前提交的值。

任何想法可能會導致不一致?

回答

0

事實證明,這是SQL Server的一個已知不一致:當你從數據庫讀取通常會看到您自己的事務未提交的更改(在所有隔離級別中),但這並不總是有保證的。在我的情況下,解決方法是使用with (readuncommitted),信任應用程序級鎖定機制,防止同一數據的同時修改。

我收到了兩位獨立數據庫專家的相同答案。不幸的是,我沒有找到任何關於這個問題的書面參考。

相關問題