我有一个包含+100表的数据库,大多数表都有一个保存URL的列但具有不同的“列名”,并且URL也不同。 e.g。
在一张表中
usa3030.Development.com/portal/mybook/chapter1/page1/line1
和另一个
usa3030.Development.com/portal/mybook/chapter1
依此类推,但确保每个网址都包含“usa3030.Development.com/portal/mybook/chapter1”
所以我想要一个查询,找到列数据中包含文本的每个列(“*”我认为我们称之为通配符)
"usa3030.Development.com/portal/mybook/chapter1"
并将其替换为
usa3030.Development.com/MyWorld/Chp1
答案
答案 0 :(得分:1)
我猜你必须完成以下步骤:
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+'%')