ID
も必要ありません パラメータ。
UPDATE
yourTable
SET
Order = (CASE WHEN Order = @oldOrder THEN @newOrder
WHEN @newOrder > @oldOrder THEN Order - 1
ELSE Order + 1 END)
WHERE
Order BETWEEN @oldOrder AND @newOrder
OR Order BETWEEN @newOrder AND @oldOrder
- 元の位置と新しい位置の上または下を変更する必要はありません。
- 他のすべては1つ上または下に移動します。
- 元のアイテムを除いて、新しい位置に移動します。