是否可以在数据库的所有表中的所有列中搜索并替换所有出现的字符串?我使用的是Microsoft SQL Server。
答案 0 :(得分:4)
虽然我可以通过两种方式做到这一点,但并不容易:
sqlcmd
以重新创建数据库。如果有选择,我会使用第二种方法,只要DPW适用于您的SQL Server版本。我最后一次使用该工具时,它满足了我的需求(MS SQL Server 2000/2005),但在使用数据库角色时有一些怪癖。
答案 1 :(得分:2)
在MySQL中,你可以很容易地做到这一点:
update [table_name] set [field_name] = replace([field_name],'[string_to_find]','[string_to_replace]');
我已经在生产服务器上成功测试了这个。
Example:
update users set vct_filesneeded = replace(vct_filesneeded,'.avi','.ai');
参考:http://www.mediacollege.com/computer/database/mysql/find-replace.html
答案 2 :(得分:1)
编写此类查询的一个很好的起点是"Search all columns in all the tables in a database for a specific value"存储过程。完整的代码在链接(不是微不足道,但复制/粘贴并使用它,它只是工作)。
从那以后修改代码以替换找到的值是相对微不足道的。