实现上移的存储过程

--上移存储过程

create proc sp_sort

@id int

as

declare @SortID int  --排序位置

declare @TempSortID int --临时排序位置

declare @TempID int   --临时编号

begin transaction

select @SortID=SortID from [User] where [ID]=@ID --找出想修改顺序的用户的当前当前排序

select @TempSortID=MIN(SortID) from [User] where SortID>@SortID --找出需要修改顺序的上一级顺序的顺序编号

select @TempID=[ID] from [User] where SortID=@TempSortID --找出上一级编号的ID

update [User] set SortID=@SortID where [ID]=@TempID --把上一级编号下调一级

update [User] set SortID=@TempSortID where[ID]=@id --把下一级编号上调一级

if @@ERROR>0 or @@ROWCOUNT<>1

rollback tran

else

commit tran

go

select * from [user]

exec dbo.sp_sort @id=1

select * from [user]

posted @ 2011-09-26 11:00  晨冬之雪  阅读(180)  评论(0编辑  收藏  举报
百度