如何在sql数据库中的所有表的所有列中搜索和替换字符串的一部分
是否可以搜索和替换数据库所有表中所有列中出现的所有字符串?我使用Microsoft SQL Server。不容易,但我可以用两种方法来实现:如何在sql数据库中的所有表的所有列中搜索和替换字符串的一部分,sql,sql-server,database,Sql,Sql Server,Database,是否可以搜索和替换数据库所有表中所有列中出现的所有字符串?我使用Microsoft SQL Server。不容易,但我可以用两种方法来实现: 编写一系列存储过程,用于标识所有表的所有varchar和text列,并以“update foo SET BAR=REPLACE(BAR,'foobar','qux')的形式为每个表的每列生成单独的update语句。这可能需要对系统表进行大量的查询,并进行大量的实验——微软不会特意记录这些内容 将整个数据库导出到单个文本文件,对该文件执行搜索/替换,然后重新
sqlcmd
以重新创建数据库如果有选择的话,我会使用第二种方法,只要它能与您的SQL Server版本配合使用。上次我使用该工具时,它满足了我的需要(MS SQL Server 2000/2005),但在处理数据库角色时,它有一些怪癖。编写此类查询的一个良好起点是存储过程。完整的代码在链接处(不是很简单,但是复制/粘贴并使用它,它只是工作)
从那时起,修改代码以替换找到的值就相对简单了。在MySQL中,您可以很容易地这样做: 更新[表格名称]设置[字段名称]=replace([字段名称],“[string\u to\u find]”,“[string\u to\u replace]”) 我个人在生产服务器上成功地测试了这一点
Example:
update users set vct_filesneeded = replace(vct_filesneeded,'.avi','.ai');
Ref:它是否也适用于microsoft sql server?如果是这样,那就太完美了!