sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu použít zamykací rady, aby dva paralelní dotazy vracely neprotínající se výsledky?

Tohle by mělo stačit.

BEGIN TRANSACTION
DECLARE @taskId
SELECT TOP (1) @taskid = TaskId FROM Tasks WITH (UPDLOCK, READPAST) WHERE State = 'ReadyForProcessing' 
UPDATE Tasks SET State = 'Processing' WHERE TaskId = @taskid
COMMIT TRAN


  1. Pouze MySQL SELECT, nikoli hodnoty null

  2. CHYBA:další data za posledním očekávaným sloupcem při použití PostgreSQL COPY

  3. Chování Oracle Parallel Query s nástroji IDE jako SQL Developer nebo Toad

  4. Zkontrolujte, zda se shodují 3 nebo více v řádku DB