做一下备忘
MOVEUP:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go ALTER PROCEDURE [dbo].[Proc_MoveUp]
@id int
AS
BEGIN declare @preSort int;--上一条记录的排序值
declare @preid int; --上一条记录的id值
declare @curSort int;--当前记录的排序值 with TB As (select top *,row_number() over(order by Sort desc,id desc) as rowid from T_Move order by Sort desc,id desc)
select @preSort=sort,@preid=id from TB where rowid=(select rowid+ from TB where id=@id);
select @curSort=Sort From T_Move Where id=@id; update T_Move set Sort=@preSort where id=@id;
update T_Move set SOrt=@curSort where id=@preid END
MOVEDOW:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go ALTER PROCEDURE [dbo].[Proc_MoveDown]
@id int
AS
BEGIN declare @nextSort int;--上一条记录的排序值
declare @nextid int; --上一条记录的id值
declare @curSort int;--当前记录的排序值 with TB As (select top *,row_number() over(order by Sort desc,id desc) as rowid from T_Move order by Sort desc,id desc)
select @nextSort=sort,@nextid=id from TB where rowid=(select rowid- from TB where id=@id);
select @curSort=Sort From T_Move Where id=@id; update T_Move set Sort=@nextSort where id=@id;
update T_Move set SOrt=@curSort where id=@nextid END