次のクエリは、これを実行した直後に更新を実行するために必要な ID のリストを提供します。
SELECT TOP 5 WorkflowEventProcessingID
FROM Master.WorkflowEventProcessing
WHERE ProcessingToken IS NULL
ORDER BY WorkflowEventProcessingId
この範囲の最小 (55034) ID と最大 (55038) ID を 1 つの select ステートメントで取得する方法はありますか?
UPDATE WorkflowEventProcessing
SET ProcessingToken = <guid here>
WHERE WorkflowEventProcessingId >= @minId
AND WorkflowEventProcessingId <= @maxId
私はこのようなことを試しましたが、私は道を外れています:
DECLARE @minId INT
DECLARE @maxId INT
SELECT TOP 5 @minId = min(WorkflowEventProcessingID), @maxId = MAX(WorkflowEventProcessingID)
FROM Master.WorkflowEventProcessing
WHERE ProcessingToken IS NULL
ORDER BY WorkflowEventProcessingId
編集
これでデッドロックが発生しているため、サブ SELECT で UPDATE を実行したくありません。そのため、UPDATE と SELECT の間で別の DELETE プロセスを実行できるように、SELECT と UPDATE を分離するように言われました。