admin

查询以查找和替换SQL数据库中的特定文本(所有表和所有列)

sql

我有一个带有+100个表的数据库,大多数表都有一个保存URL的列,但是具有不同的“列名”,URL也不同。例如

在一张表上

usa3030.Development.com/portal/mybook/chapter1/page1/line1

而在另一个

usa3030.Development.com/portal/mybook/chapter1

依此类推,但可以肯定的是,每个URL中都包含“ usa3030.Development.com/portal/mybook/chapter1”

因此,我需要一个查询,该查询将查找在列数据中包含文本的每个列(“ *”我认为我们称为通配符)

"usa3030.Development.com/portal/mybook/chapter1"

并替换为

usa3030.Development.com/MyWorld/Chp1

阅读 209

收藏
2021-06-07

共1个答案

admin

在这里,我想您必须执行以下步骤:

DECLARE @string varchar(max)
For each table in sys.Objects (where type='U')

      For each column of the above table

        IF EXISTS(select * from tablename where colname like '%'+@string+'%')
        update table tablename SET colnmae=REPLACE(colname,'old','new') where colname like '%'+@string+'%')
2021-06-07