sql 存储过程批量删除数据的语句_mssql数据库教程-查字典教程网
sql 存储过程批量删除数据的语句
sql 存储过程批量删除数据的语句
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:CreatePROCEDUREBatch_Delete@TableNamenvarchar(100),--表名@Field...

复制代码 代码如下:

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新mssql数据库学习
    热门mssql数据库学习
    编程开发子分类