Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2008:SELECIONE PARA ATUALIZAÇÃO


Você precisa usar uma das chamadas dicas de tabela :

O bloqueio de atualização impede que outros processos tentem atualizar ou excluir as linhas em questão - mas não impede o acesso de leitura:
    SELECT TOP (20) * 
    FROM [TMA_NOT_TO_ENTITY_QUEUE] WITH (UPDLOCK)
    WHERE [TMA_NOT_TO_ENTITY_QUEUE].[STATE_ID] = 2 
    ORDER BY TMA_NOT_TO_ENTITY_QUEUE.ID

Há também um bloqueio exclusivo , mas basicamente, o bloqueio de atualização deve ser suficiente. Depois de selecionar suas linhas com um bloqueio de atualização, essas linhas são "protegidas" contra atualizações e gravações até que sua transação termine.