SQl 存储过程完成记录的上下移动操作

/****** Object:  StoredProcedure [dbo].[sortGroup]    Script Date: 03/27/2012 16:28:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[sortGroup]
@groupid int,
@up bit,
@createuser int
as
declare @dqsort int
declare @shyi int

declare @syid int
declare @xyid int

select @dqsort=Sort from T_Group where Group_Id=@groupid and create_user=@createuser                       --取出其序号

if @up = 1
begin
 select top 1 @syid=Group_Id,@shyi=Sort from T_Group where Sort<@dqsort and create_user=@createuser order by Sort desc   --取出其上一条Id来
end
else
begin
    select top 1 @syid=Group_Id,@shyi=Sort from T_Group where Sort > @dqsort and create_user=@createuser order by Sort asc
end
begin tran
update T_Group set sort=@dqsort where Group_Id=@syid             --把上一条的sort高为当前的条的Sort
update T_Group set Sort=@shyi where Group_id = @groupid
if @@ERROR = 0
COMMIT TRAN
ELSE
ROLLBACK TRAN
GO
/****** Object:  ForeignKey [FK__City__proID__398D8EEE]    Script Date: 03/27/2012 16:28:37 ******/
ALTER TABLE [dbo].[T_City]  WITH CHECK ADD FOREIGN KEY([proID])
REFERENCES [dbo].[T_Province] ([proID])
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值