前提:
比如我有数据库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文件吗?各位高手请赐教!
解决方案 »
- 更改table的條件約束出現問題求解
- insert into 事务问题??
- sql 2005 时间转换问题
- (急!)关于日期查询性能问题(数据记录超过300万条):
- 新手上路,帮忙解释下这个例题
- SQL 指定语句 如何导出txt ------一定给分的
- 急~请高手帮帮`一条有关将查询结果导出的命令(在线等)
- 经常看到一些 sp_monitor sp_help 这是什么意思 不家在查询中我为什么不能像声明变量比如 int mydate,youdate (其它问题内详)
- 请问如何不通过sql手动打开1433端口?
- 添加表内容,并累加,如何实现
- 问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;