我有一个表(SQL服务器)引用路径(UNC或其他),但现在路径将会改变。
在路径列中,我有许多记录,我只需要改变路径的一部分,而不是整个路径。我需要在每条记录中,将相同的字符串更改为新的字符串。
我如何通过简单的更新来做到这一点?
我有一个表(SQL服务器)引用路径(UNC或其他),但现在路径将会改变。
在路径列中,我有许多记录,我只需要改变路径的一部分,而不是整个路径。我需要在每条记录中,将相同的字符串更改为新的字符串。
我如何通过简单的更新来做到这一点?
当前回答
如果目标列类型不是varchar/nvarchar like text,我们需要将列值转换为字符串,然后将其转换为:
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
其他回答
UPDATE CustomReports_Ta
SET vchFilter = REPLACE(CAST(vchFilter AS nvarchar(max)), '\\Ingl-report\Templates', 'C:\Customer_Templates')
where CAST(vchFilter AS nvarchar(max)) LIKE '%\\Ingl-report\Templates%'
没有CAST函数,我得到了一个错误
参数数据类型ntext对于replace函数的参数1无效。
我尝试了上面的方法,但是没有得到正确的结果。下面的一个是:
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable
其中“ImagePath”是我的列名。“NewImagePath”是临时的 列名称而不是“ImagePath”“~/”是我的当前字符串。(老 字符串)“. ./"是我需要的字符串。(新字符串) “tblMyTable”是我在数据库中的表。
所有的答案都很好,但我只想给你一个很好的例子
select replace('this value from table', 'table', 'table but updated')
这个SQL语句将取代单词“table”的存在。 (第二个参数)在给定语句(第一个参数)内与第三个参数
初始值是表中的这个值,但执行replace函数后,它将是表中的这个值,但更新了
这是一个真实的例子
UPDATE publication
SET doi = replace(doi, '10.7440/perifrasis', '10.25025/perifrasis')
WHERE doi like '10.7440/perifrasis%'
例如,如果我们有这个值
10.7440/perifrasis.2010.1.issue-1
它会变成
10.25025/perifrasis.2010.1.issue-1
希望这能让你更好地想象
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')