sql 存储过程批量删除数据的语句

2022-05-24 0 751

复制代码 代码如下:

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

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql sql 存储过程批量删除数据的语句 https://www.niceym.com/60789.html