zoukankan      html  css  js  c++  java
  • 批量替换一个数据库中所有表中所有记录

    /***********批量替换一个数据库中所有表中所有记录************/
    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
  • 相关阅读:
    博客园的第一篇博客
    I-如何办好比赛
    塞特斯玛斯塔
    字典序最大的子序列
    百练POJ 1657:Distance on Chessboard
    百练POJ2750:鸡兔同笼
    HDU3790最短路径问题
    HDU 2544最短路Dijkstra算法
    快速幂【倍增+二分】
    树的高度
  • 原文地址:https://www.cnblogs.com/luluping/p/1530614.html
Copyright © 2011-2022 走看看