我有一个表(SQL服务器)引用路径(UNC或其他),但现在路径将会改变。
在路径列中,我有许多记录,我只需要改变路径的一部分,而不是整个路径。我需要在每条记录中,将相同的字符串更改为新的字符串。
我如何通过简单的更新来做到这一点?
我有一个表(SQL服务器)引用路径(UNC或其他),但现在路径将会改变。
在路径列中,我有许多记录,我只需要改变路径的一部分,而不是整个路径。我需要在每条记录中,将相同的字符串更改为新的字符串。
我如何通过简单的更新来做到这一点?
当前回答
您可以使用这个查询
update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
其他回答
如果目标列类型不是varchar/nvarchar like text,我们需要将列值转换为字符串,然后将其转换为:
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
我尝试了上面的方法,但是没有得到正确的结果。下面的一个是:
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
你也可以在运行时为电子邮件模板替换大文本,这是一个简单的例子。
DECLARE @xml NVARCHAR(MAX)
SET @xml = CAST((SELECT [column] AS 'td','',
,[StartDate] AS 'td'
FROM [table]
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
select REPLACE((EmailTemplate), '[@xml]', @xml) as Newtemplate
FROM [dbo].[template] where id = 1
您可以使用这个查询
update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
您需要使用replace函数来替换路径。
update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
这里的column_name指的是您想要更改的列。
希望它能起作用。