Sql-Server-2000
在 READ COMMITTED 事務塊中使用 (NOLOCK)
我們使用的是 SQL Server 2000。
我想知道如果我們
NOLOCK
在事務塊中使用提示會有什麼風險READ COMMITTED
,例如:SET TRANSACTION ISOLATION LEVEL READ COMMITTED GO BEGIN TRANSACTION IF EXISTS(SELECT * FROM clients (NOLOCK) WHERE clientID = 23249) BEGIN PRINT 'TODO Update client' END ELSE BEGIN PRINT 'TODO Insert client' END COMMIT TRANSACTION
我擔心的是 NOLOCK 提示將允許 ditry 讀取,儘管事務塊的隔離級別。
這可能嗎?
PS:我知道為什麼我首先使用鎖定提示存在爭議,但我只想知道這種情況下的風險是什麼。
該提示會覆蓋連接的隔離級別,因此您確實會允許從客戶端表中進行臟讀。