首页 > 数据库 > SQL Server > 正文
mssql批量替换整个数据库
2010-05-22       个评论      
收藏    我要投稿

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,99) 为char,varchar,nchar,nvarchar,ntext类型
        SELECT name FROM syscolumns WHERE xtype IN (231,167,239,175,99) AND id=@tbID
open cur1
fetch next FROM cur1 INTO @columnName
while @@fetch_status=0
begin
      SET @sql=update [ + @tableName + ] set [+ @columnName +]= replace(cast([+@columnName+] as varchar(8000)),+@Str1+,+@Str2+) where [+@columnName+] like %+@Str1+%
      --update tablename set fieldA=replace(cast(fieldA as varchar(8000)) ,aa,bb)这样的语句。
      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

点击复制链接 与好友分享!回本站首页
相关TAG标签 数据库
上一篇:如何利用SQL SERVER的触发器制作后门
下一篇:SQL数据操作基础(中级)10
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站