sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008:SELECT FOR UPDATE

    いわゆる テーブル ヒント のいずれかを使用する必要があります。 :

    更新ロック 他のプロセスが問題の行を更新または削除しようとするのを防ぎますが、読み取りアクセスは妨げません:

        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
      

    排他ロックもあります 、しかし、基本的には更新ロックで十分です。更新ロックを使用して行を選択すると、トランザクションが終了するまで、それらの行は更新と書き込みから「保護」されます。



    1. SQLのWHERE句のLIKEおよびNULL

    2. MySQLでゼロ除算を回避する方法

    3. SQL:ANY / SOMEおよびALLキーワードが必要ですか?

    4. 一貫してMicrosoftAccessMVPアワードを獲得する方法