• 批量替换一个数据库中所有表中所有记录


    /***********批量替换一个数据库中所有表中所有记录************/
    declare @delStr nvarchar(500)
    set @delStr='这里是要替换的字符'
    /**********以下为操作实体************/
    set nocount on

    declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
    declare @sql nvarchar(500)

    set @iResult=0
    declare cur cursor for
    select name,id from sysobjects where xtype='U'

    open cur
    fetch next from cur into @tableName,@tbID

    while @@fetch_status=0
    begin
      declare cur1 cursor for
            --xtype in (231,167,239,175) 为char,varchar,nchar,nvarchar类型
            select name from syscolumns where xtype in (231,167,239,175) and id=@tbID
      open cur1
      fetch next from cur1 into @columnName
      while @@fetch_status=0
      begin
          set @sql='update [' + @tableName + '] set ['+ @columnName +']= replace(['+@columnName+'],'''+@delStr+''','''') where ['+@columnName+'] like ''%'+@delStr+'%'''      
          exec sp_executesql @sql      
          set @iRow=@@rowcount
          set @iResult=@iResult+@iRow
          if @iRow>0
          begin
        print '表:'+@tableName+',列:'+@columnName+'被更新'+convert(varchar(10),@iRow)+'条记录;'
          end      
          fetch next from cur1 into @columnName


      end
      close cur1
      deallocate cur1
      
      fetch next from cur into @tableName,@tbID
    end
    print '数据库共有'+convert(varchar(10),@iResult)+'条记录被更新!!!'

    close cur
    deallocate cur
    set nocount off
    /*****以上为操作实体******/
    0
    0
  • 相关阅读:
    设计模式之适配器模式(Decorator)
    可复用面向对象软件的基础
    dpkg命令的用法
    UML类图几种关系的总结
    Java多线程并发编程之原子变量与非阻塞同步机制
    Java内部类总结
    多线程并发编程之构建自定义同步工具
    多线程并发编程之显示锁ReentrantLock和读写锁
    多线程并发编程之变量
    汇编语言学习系列 冒泡排序实现
  • 原文地址:https://www.cnblogs.com/luluping/p/1530614.html
Copyright © 2020-2023  润新知