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

MSSQLSERVER数据库- 上移和下移的存储过程,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。