Bạn thậm chí không cần ID
tham số.
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
- Mọi thứ ở trên hoặc dưới vị trí ban đầu và vị trí mới không cần phải thay đổi.
- Mọi thứ khác di chuyển lên hoặc xuống một cái.
- Ngoại trừ mặt hàng ban đầu, mặt hàng đó sẽ chuyển đến vị trí mới.