Anda bahkan tidak memerlukan ID
parameter.
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
- Apa pun di atas atau di bawah posisi asli dan baru tidak perlu diubah.
- Yang lainnya bergerak naik atau turun.
- Kecuali item asli, yang berpindah ke posisi baru.