前提:
比如我有数据库DB,里面有两个表A和表B,
其中A表有两个字段a1,a2都含有字符串"XX",
B表有两个字段b1,b2都含有字符串"XX"问题:
如果我想批量地将表A和表B中四个字段中"XX"替换成"YY",
(也就是说我想将一个数据库中所有表的所有字段中的某个字符串"XX"替换成另一个字符串"YY")
由简单批处理SQL或者BAT文件吗?各位高手请赐教!
比如我有数据库DB,里面有两个表A和表B,
其中A表有两个字段a1,a2都含有字符串"XX",
B表有两个字段b1,b2都含有字符串"XX"问题:
如果我想批量地将表A和表B中四个字段中"XX"替换成"YY",
(也就是说我想将一个数据库中所有表的所有字段中的某个字符串"XX"替换成另一个字符串"YY")
由简单批处理SQL或者BAT文件吗?各位高手请赐教!
解决方案 »
- 求助SQL百万级数据查询问题?
- 求平均值得问题
- CASE WHEN 数据更新的问题,要实现根据TYPE_ID不同更新不同的字段
- 我装了SQL Server 2008 但是无法访问服务器 谁知道解决办法?
- SQL新手提问:还是写入视频文件,麻烦高手看一下哪里出错啦?(在线等待)谢谢先
- 我用ado去连接sql server为什么要比连接acess慢那么多啊
- 高分请教sqlserver2005和sqlserver2000之间的跨网段分布式事物
- 救急!救急!急需Microsoft SQL 2000 Server 安装密码,散分100
- 客户端用SQL SERVER 70 可以连上远程的SQL SERVER2000 服务器并正常操作吗?
- 高手、高手、高高手!!!远程数据操作咋办????
- 问2个简单的SQL 问题
- sql server 数据导入到 visual foxpro
SET a1=REPLACE(a1,'XX','YY')
可以通过sys.objects,sys.columns,sys.types结合..生成替换语句.
http://topic.csdn.net/u/20081008/16/7132bbc3-571b-4297-98d9-23e4fd81776c.html
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for
select a.name,b.name from sysobjects a,syscolumns b ,systypes c
where a.id=b.id and a.xtype='u' and c.name in (--这里是要替换的类型
'char', 'nchar', 'nvarchar', 'varchar'
--,'text','ntext' --这里如果你的text(ntext)类型没有超过8000(4000)长度,才可以使用
)
declare @str varchar(500),@str2 varchar(500)
--这里是你要替换的字符
set @str='XX' set @str2='YY'open table_cursor fetch next from table_cursor into @t,@c while(@@fetch_status=0) begin exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')') fetch next from table_cursor into @t,@c end close table_cursor deallocate table_cursor;