Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2008:ZUR AKTUALISIERUNG AUSWÄHLEN

Sie müssen einen der sogenannten Tabellenhinweise verwenden :

Die Aktualisierungssperre verhindert, dass andere Prozesse versuchen, die betreffenden Zeilen zu aktualisieren oder zu löschen - aber es verhindert nicht den Lesezugriff:

    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

Es gibt auch eine exklusive Sperre , aber im Grunde sollte die Update-Sperre ausreichen. Sobald Sie Ihre Zeilen mit einer Aktualisierungssperre ausgewählt haben, sind diese Zeilen vor Aktualisierungen und Schreibvorgängen "geschützt", bis Ihre Transaktion endet.