佘赐雄 发表于 2012-10-24 23:16:46

sql 存储过程批量删除数据

sql 存储过程批量删除数据

<div class="postText">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]
查看完整版本: sql 存储过程批量删除数据