Estamos usando o SQL Server 2000.
Gostaria de saber quais são os riscos se usarmos uma NOLOCK
dica dentro de um READ COMMITTED
bloco de transação, por exemplo:
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
Minha preocupação é que a dica NOLOCK permitirá uma leitura ditry, apesar do nível de isolamento do bloco de transação.
Isso é possível?
PS: Sei que há um debate a ser feito sobre por que estou usando uma dica de bloqueio em primeiro lugar, mas gostaria apenas de saber quais são os riscos nesse cenário.
A dica substitui o nível de isolamento da conexão para que você realmente permita uma leitura suja da tabela de clientes.