SQL Lock默认

时间:2013-07-25 21:14:04

标签: sql tsql transactions

我创建了以下TSQL:

begin transaction
    update person.Address set addressline2 = 'The Town' where addressid=1 
    WAITFOR DELAY '0:00:010'
    commit

在十秒延迟期间,您无法在另一个SQL Studio管理器中运行此SQL语句:

SELECT * FROM Person.Address

或者这个:

SELECT * FROM Person.Address where addressid=1 

但你可以运行这个:

SELECT * FROM Person.Address where addressid<>1

SQL Studio Manager是否选择锁定类型?我不相信它会这样做:

  

SELECT * FROM Person.Address其中addressid = 1 nolock

我已阅读此网页:&gt; http://msdn.microsoft.com/en-us/library/ms175519%28v=sql.105%29.aspx,但我仍不清楚。

1 个答案:

答案 0 :(得分:1)

提示NoLock还表示“Read Uncommitted”仅适用于select语句。因此,它还允许您查询未提交的数据。请查找文档Here,其中没有提示,引擎将不允许您读取未提交的数据。