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

Uzamknou uložené procedury tabulky/řádky?

Můžete získat rasovou podmínku.

Lze to provést jedním příkazem:

  • Můžete přiřadit v AKTUALIZACI
  • Nápovědy k uzamčení umožňují dalšímu procesu přeskočit tento řádek
  • Klauzule OUTPUT vrací data volajícímu

Zkuste toto... (upravit:zámek odstraněn)

Update TOP (1) ServerLoginUsers WITH (ROWLOCK, READPAST)
OUTPUT INSERTED.*
SET
   AssignedTo = @User, AssignedToDate = getdate(), SourcePool = @UserPool
WHERE
   AssignedTo is null and [TsServer] = @Server   -- not needed -> and UserName = @ServerUser

Pokud ne, možná budete potřebovat samostatný výběr

Update TOP (1) ServerLoginUsers WITH (ROWLOCK, READPAST)
SET
    -- yes, assign in an update
   @ServerUser = UserName,
   -- write
   AssignedTo = @User, AssignedToDate = getdate(), SourcePool = @UserPool
OUTPUT INSERTED.*
WHERE
   AssignedTo is null and [TsServer] = @Server   -- not needed -> and UserName = @ServerUser

SELECT ...

Další informace naleznete v tomto:Současné podmínky fronty procesů serveru SQL




  1. Vyhnutí se zablokování MySQL při upgradu sdíleného na exkluzivní zámek

  2. Postgresql Vícenásobné počty pro jednu tabulku

  3. Žádné ukládání plánu provádění do mezipaměti pro dynamické SQL v PostgreSQL 9.4?

  4. Vraťte řádky, které obsahují alfanumerické znaky v SQLite