Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008:SELEZIONA PER AGGIORNAMENTO

È necessario utilizzare uno dei cosiddetti suggerimenti per la tabella :

Il blocco degli aggiornamenti impedisce ad altri processi di tentare di aggiornare o eliminare le righe in questione, ma non impedisce l'accesso in lettura:

    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

C'è anche un lucchetto esclusivo , ma fondamentalmente, il blocco dell'aggiornamento dovrebbe essere sufficiente. Dopo aver selezionato le righe con un blocco di aggiornamento, tali righe sono "protette" da aggiornamenti e scritture fino al termine della transazione.