簡體   English   中英

SQL Server事務:插入會導致鎖定?

[英]SQL Server transactions: insert causes locks?

我遇到以下問題:我在事務(默認的ADO.NET事務)內的表(例如'temp')中插入一行。 在提交該事務之前,從另一個會話(SQL Server 2008 Management Studio)運行的命令'select * from temp'被阻止並且無法完成。

這對我來說似乎很奇怪。 讀取命令是否應該返回所有先前的表行(除了新插入的行以外的所有行),並且不被阻塞?

SQL Server中的默認行為是采取鎖定,並且只有在提交事務后才會釋放這些鎖定。

有3種主要解決方法-READPAST提示 (將跳過鎖定的行), READ UNCOMMITTED隔離級別(或NOLOCK提示)(將返回所有行,包括新插入的行),或SNAPSHOT隔離級別 -但是要使快照正常工作,需要在服務器級別啟用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM