sql >> Database >  >> RDS >> Sqlserver

SELECT en UPDATE tabel zodat er geen overlap is van Threads

Als u een gelijktijdige veilige wachtrijtype vergrendeling bedoelt, gebruik dan ROWLOCK, UPDLOCK, READPAST hints?

SQL Server Process Queue Race Condition

BEGIN TRAN

SELECT TOP 1 @QueryID = [ID] from Table WITH (ROWLOCK, UPDLOCK, READPAST)
UPDATE Table SET [Read] = 1 WHERE [ID] = @QueryID 

COMMIT TRAN -- TRAM

In één verklaring echter. zoiets als

WITH T AS
(
    --ORDER BY with TOP , or perhaps MIN is better?
    SELECT TOP 1 [Read], [ID] from Table
    WITH (ROWLOCK, UPDLOCK, READPAST) ORDER BY [Read]
)
UPDATE
    T
SET
    [Read] = 1;


  1. Wordpress kan geen verbinding maken met mysql-server

  2. Geparametriseerde Query voor MySQL met C#

  3. Hoe voer ik Google Cloud SQL alleen uit als ik het nodig heb?

  4. string vs tekst met Rails 3.2.* en Postgres - moet ik altijd alleen tekst gebruiken?