SQL存储过程通过传送数组字符串参数删除多条记录


  本文标签:SQL 删除

  SQL删除记录有多种不同的方法,下面为您介绍在SQL Server存储过程通过传送数组字符串参数删除多条记录(如多选或全选表单中的多选框所获取的一组数值删除 )  。

  代码如下:

CREATE PROCEDURE DeleteNews
    
@ID nvarchar(500)
as
    
DECLARE @PointerPrev int
    
DECLARE @PointerCurr int
    
DECLARE @TId int
    
Set @PointerPrev=1
    
    
while (@PointerPrev < LEN(@ID))
    
Begin
        
Set @PointerCurr=CharIndex(,,@ID,@PointerPrev)
        
if(@PointerCurr>0)
        
Begin
            
set @TId=cast(SUBSTRING(@ID,@PointerPrev,@PointerCurr-@PointerPrevas int)
            
Delete from News where ID=@TID
            
SET @PointerPrev = @PointerCurr+1
        
End
        
else
            
Break
    
End
    
--删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除
     set @TId=cast(SUBSTRING(@ID,@PointerPrev,LEN(@ID)-@PointerPrev+1as int
     
Delete from News where ID=@TID
GO