我想知道删除记录后重新排序记录的最有效方法是什么。基本上我有类似(ItemID,SortOrder)的东西。所以当我删除一个项目时,SortOrder 列将不再是增量的。我想重新编号排序顺序,以便数字再次递增。
我在想也许我可以用 RANK 功能来做到这一点……但我不太确定该怎么做。
如果您使用的是支持 T-SQL 的东西(即不是 Compact Edition),那么这应该可以工作。
假设您的表已命名Item并且订单当前是增量的(无间隙),
declare @SortOrder int
select @SortOrder = SortOrder from Item where ItemID = @ItemID
update Item set SortOrder = SortOrder - 1 where SortOrder > @SortOrder
delete Item where ItemID = @ItemID
Run Code Online (Sandbox Code Playgroud)