62,074
社区成员
发帖
与我相关
我的任务
分享
我这是餐单的排序一个样子,不过记住了 表的ID(MenuID ) 和排序的ID(SortID ) 是两个列
CREATE proc [dbo].[paixu]
@MenuID int, --点击的要排序的那行的id
@x int --判断是向上还是向下
as
declare @SortID int--点中的那行序号
declare @SortID2 int--点中的那行的上面或下面的序号
declare @MenuID2 int--点中的那行的上面或下面的id号
if(@x=1)
begin
set @SortID=(select sortID from Menu where MenuID=@MenuID)
set @SortID2=(select top 1 sortID from Menu where SortID<@SortID order by sortID desc ) --获取点击那行的上面一行的序号
if(@SortID2>=(select top 1 sortID from Menu order by sortID asc))
begin
set @MenuID2=(select MenuID from Menu where sortID=@SortID2)
update Menu set SortID=@SortID2 where MenuID=@MenuID
update Menu set SortID=@SortID where MenuID=@MenuID2
end
end
else
begin
set @SortID=(select sortID from Menu where MenuID=@MenuID)
set @SortID2=(select top 1 sortID from Menu where SortID>@SortID order by sortID asc )--获取点击那行的下面一行的序号
if(@SortID2<=(select top 1 sortID from Menu order by sortID desc))
Begin
set @MenuID2=(select MenuID from Menu where sortID=@SortID2)
update Menu set SortID=@SortID2 where MenuID=@MenuID
update Menu set SortID=@SortID where MenuID=@MenuID2
end
end