代码之家  ›  专栏  ›  技术社区  ›  dacwe

如何在sql数据库中的所有表的所有列中搜索和替换字符串的一部分

  •  3
  • dacwe  · 技术社区  · 14 年前

    3 回复  |  直到 13 年前
        1
  •  4
  •   Craig Trader    14 年前

    1. 将整个数据库导出到单个文本文件,对该文件执行搜索/替换,然后重新导入整个数据库。考虑到您使用的是mssqlserver,这实际上是更简单的方法。Microsoft创建了 Microsoft SQL Server Database Publishing Wizard sqlcmd 重新创建数据库。

    DPW 适用于您的SQL Server版本。上一次我使用这个工具时,它满足了我的需要(mssqlserver2000/2005),但是在处理数据库角色时它有一些怪癖。

        2
  •  2
  •   Haider Abbas    12 年前

    update[table\u name]set[field\u name]=replace([field\u name],'[string\u to\u find],'[string\u to\u replace]');

    我个人已经在一台生产服务器上成功地进行了测试。

    Example:
    update users set vct_filesneeded = replace(vct_filesneeded,'.avi','.ai');
    

    裁判: http://www.mediacollege.com/computer/database/mysql/find-replace.html

        3
  •  1
  •   Abel    13 年前

    编写这样一个查询的一个很好的起点是 "Search all columns in all the tables in a database for a specific value" 存储过程。完整的代码就在这个链接上(不是琐碎的,但是复制/粘贴它并使用它,它只是工作)。

    从那以后,修改代码来替换找到的值就相对简单了。