批量删除记录的存储过程

 if exists(select * from sysObjects where name='Users_delete')
drop proc Users_delete
go


create proc Users_delete
@ID varchar(100)
as

  declare @pointPrve int--开始的位置
  declare @pointCurr int--当前,的位置
  declare @uID int --根据删除的id
  set @pointPrve=1
  while(@pointPrve<len(@ID))
  begin
   set @pointCurr=charIndex(',',@ID,@pointPrve)--从开始位置开始查找,在字符串@ID中的位置
   if(@pointCurr>0)
   begin
    set @uID=cast(SUBSTRING(@ID,@pointPrve,@pointCurr-@pointPrve)as int)--从@pointPrve位置开始在@ID中截取长度为@pointCurr-@pointPrve的字符,然后转成int
    delete from Users where id=@uID
    set @pointPrve=@pointCurr+1--开始的位置等于,的位置加上1,也就是从下一个数字开始
   end
   else
    break
  end
  --因为到最后一个数的时候没有逗号,所以@pointCurr的值小于零
  set @uID=cast(SUBSTRING(@ID,@pointPrve,len(@ID)-@pointPrve+1) as int)
  delete from Users where id=@uID


--测试存储过程
declare @id varchar(100)
set @id='21,22,23,24,25'
exec Users_delete @id

select * from Users

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值