如何替換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%'
相關文章
相關標籤/搜索