0

次の TSQL を作成しました。

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

10 秒の遅延の間、この SQL ステートメントを別の SQL Studio Manager で実行することはできません。

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 where addressid=1 nolock

> http://msdn.microsoft.com/en-us/library/ms175519%28v=sql.105%29.aspxの Web ページを読みましたが、まだよくわかりません。

4

1 に答える 1

1

Hint NoLock は、'Read Uncommitted' が select ステートメントにのみ適用されることも意味します。したがって、コミットされていないデータに対してもクエリを実行できます。ここでドキュメントを見つけてください 。ヒントがないため、エンジンはコミットされていないデータの読み取りを許可しません。

于 2013-07-25T21:23:39.223 に答える