六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 160|回复: 0

sql 存储过程批量删除数据

[复制链接]

升级  29%

89

主题

89

主题

89

主题

举人

Rank: 3Rank: 3

积分
287
 楼主| 发表于 2012-12-22 02:30:00 | 显示全部楼层 |阅读模式
sql 存储过程批量删除数据

<div class="postText"><div id="cnblogs_post_body"><div class="cnblogs_code">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
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表