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 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