![](/img/trans.png)
[英]Selecting rows from multiple columns in the same table SQL Server CE WebMatrix
[英]Selecting all rows from a SQL Server table locked with the readcommited IsolationMode
我的一個客戶會話從事務在表中創建一個條目並繼續其處理。 事務在read committed
的隔離模式下運行。 同時,另一個客戶端會話報告表中的所有數據。
由於鎖定行(由其他客戶端插入),因此全選操作現在已完全鎖定。
如何在全選期間檢索提交的數據,而不是完全鎖定?
任何幫助將不勝感激。
您尚未真正確定使用場景的具體細節,但是有可能從表中取出數據,但有一些嚴重的警告 。
您可以使用marc_s所說的READ UNCOMMITTED
快照隔離級別,其作用WITH (NOLOCK)
在事務中所有select語句上使用WITH (NOLOCK)
作用相同。 如果您只想讀取該表,但通常會處理事務中的所有其他讀取,那么最好將NOLOCK
提示放在查詢中的特定表上。 因此,例如:
SELECT *
FROM firstTable f INNER JOIN
secondTable s WITH (NOLOCK) on f.Key = s.Key
這將為firstTable
發出普通的讀取鎖,但secondTable
帶任何鎖讀取secondTable
。 沒有鎖會非常危險-因為您可以有效地破壞數據。 如果執行插入操作會重新排序數據並導致頁面拆分,那么您可以兩次退出同一行,並且會遇到各種類似的不愉快情況。
因此有可能,但這並不理想,因此您應警惕這種效果 。 傑森·斯特拉特(Jason Strate)提供了一些不錯的進一步閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.