为了账号安全,请及时绑定邮箱和手机立即绑定

我想把这段中文批量成英文,但不会写Sql批量修改语句,怎么写?

我想把这段中文批量成英文,但不会写Sql批量修改语句,怎么写?

白衣非少年 2022-10-20 19:15:59
如.我想把“中国”改成china 怎么批量更换.是想要批量替换啊.update 表名 set title=replace(title,'中国','china')这样的不行的。我要的是批量替换啊,我们假设现在不考虑text类型.update 表名 set title=replace(title,'中国','china') 这个只能一张表一张表的打开,然后字段一一替换,那样太麻烦了,我想有什么方法可以批量进行替换。
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

update 表名 set title=replace(title,'中国','china')

为什么不行, 错误还是怎么, 说的一点不清楚, 如果错误提示是什么, 你的数据结构也不清楚, 没法回答你

下面过程是数据库中所有表中含有某一值替换成新值,你参考一下, 就可以替换数据库中固定某字段,下面的固定字符串了

If exists (select * from sysobjects where name = 'replaceString' and xtype = 'P' )
Drop procedure replaceString
Go
Create procedure replaceString (@tableName varchar(255),@oldStr varchar(255), @newStr varchar(255))
as
Declare @Sql varchar(1024)
Declare @tableId varchar(20)
declare @columnName varchar(20)
declare @columnCursor cursor
declare @colNameCursor cursor

If len(@TableName) > 0
Begin
Select @Sql = 'Declare TabCursor cursor read_only for select name ,id from sysobjects where name ='+@TableName
Exec(@Sql)
End
else
Declare TabCursor cursor read_only for select name ,id from sysobjects where xtype='u'
--set tabCursor = cursor scroll read_only for select name ,id from sysobjects where xtype='u'
open TabCursor
fetch TabCursor into @tableName,@tableId
while @@Fetch_status = 0
Begin
Select @Sql = 'Declare ColumnCursor cursor scroll read_only for select name from syscolumns where id='+@tableId+' and xtype=167 '
Exec(@sql)
open ColumnCursor
fetch ColumnCursor into @columnName
while @@Fetch_status = 0
Begin
Select @Sql = 'update '+@tableName+' set '+@columnName+' = (replace('+@columnName+','+char(39)+@oldStr+char(39)+','+char(39)+@newStr+char(39)+')) where charindex('+char(39)+@oldStr+char(39)+','+@columnName+')>0 '
Exec(@sql)
fetch Next From ColumnCursor into @columnName
End
close columnCursor
deallocate columnCursor
fetch Next From TabCursor into @tableName,@tableId
End
close tabCursor
deallocate tabCursor


查看完整回答
反对 回复 2022-10-24
?
萧十郎

TA贡献1815条经验 获得超13个赞

sql="select * from [表]"
rs.open sql,conn,1,3
if rs.eof then
while not rs.eof
rs("title")=replace(rs("title"),'中国','china')
rs.update
rs.movenext
wend
end if
rs.close


查看完整回答
反对 回复 2022-10-24
?
MYYA

TA贡献1868条经验 获得超4个赞

如果是TEXT 型的字段必须要先转换为字符型才能用REPLACE函数

查看完整回答
反对 回复 2022-10-24
  • 3 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号