服务器之家

服务器之家 > 正文

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

时间:2019-12-21 15:31     来源/作者:MSSQL教程网

代码如下:


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 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
返回顶部