MSSQLSERVER数据库- 上移和下移的存储过程

做一下备忘

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 1000 *,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+1 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 1000 *,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-1 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

 

你可能感兴趣的:(sqlserver)