我们使用的是 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:我知道为什么我首先使用锁定提示存在争议,但我只想知道这种情况下的风险是什么。