各位用户为了找寻关于sql 存储过程批量删除数据的语句的资料费劲了很多周折。这里教程网为您整理了关于sql 存储过程批量删除数据的语句的相关资料,仅供查阅,以下为您介绍关于sql 存储过程批量删除数据的语句的详细内容

代码如下:

Create PROCEDURE Batch_Delete  @TableName nvarchar(100), --表名  @FieldName nvarchar(100), --删除字段名  @DelCharIndexID nvarchar(1000)  as  DECLARE @PointerPrev int  DECLARE @PointerCurr int  DECLARE @TId NVARCHAR(50), @sql NVARCHAR(1000)  Set @PointerPrev = 1  while (@PointerPrev < LEN(@DelCharIndexID))  Begin  Set @PointerCurr = CharIndex(',',@DelCharIndexID,@PointerPrev)  if(@PointerCurr>0)  Begin  SET @TId = cast(SUBSTRING(@DelCharIndexID, @PointerPrev, @PointerCurr - @PointerPrev) As NVARCHAR(50))  SET @sql = 'Delete From '+ @TableName +' Where '+ @FieldName + ' = '''+ @TID+''''  Exec(@Sql)  Print('======='+@TId+'=======sql'+@Sql)  SET @PointerPrev = @PointerCurr + 1  Print(@PointerPrev)  End  else  Begin  Print('break')  Break  End  End  --删除最后一个,因为最后一个后面没有逗号,所以在循环中跳出,需另外再删除  SET @TId = cast(SUBSTRING(@DelCharIndexID, @PointerPrev, LEN(@DelCharIndexID) - @PointerPrev + 1) As NVARCHAR(50))  SET @sql = 'Delete From '+ @TableName +' Where '+ @FieldName + ' = '''+ @TID+''''  Exec(@Sql)  Print('======='+@TId+'=======sql'+@Sql)  GO