如何替换SQL Server表列中的字符串

我有一个表( SQL Sever )引用路径( UNC或其余),但如今路径将会改变。 数据库

在路径列中,我有不少记录,我只须要更改路径的一部分,而不是整个路径。 我须要在每条记录中将相同的字符串更改成新字符串。 ide

如何经过简单的update来完成此操做? 函数


#1楼

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功能,我收到了一个错误 spa

参数数据类型ntextreplace函数的参数1无效。 code


#2楼

若是目标列类型不是varchar / nvarchar之类的文本 ,咱们须要将列值转换为字符串,而后将其转换为: xml

update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'

#3楼

select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable

其中“ImagePath”是个人列名。
“NewImagePath”是临时列名“ImagePath”的名称
“〜/”是我当前的字符串。(旧字符串)
“../”是我须要的字符串。(新字符串)
“tblMyTable”是我在数据库中的表。
字符串


#4楼

您还能够在运行时替换电子邮件模板的大文本,这是一个简单的示例。 string

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

#5楼

您能够使用此查询table

update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
相关文章
相关标签/搜索