我有一個表( SQL Sever
)引用路徑( UNC
或其餘),但如今路徑將會改變。 數據庫
在路徑列中,我有不少記錄,我只須要更改路徑的一部分,而不是整個路徑。 我須要在每條記錄中將相同的字符串更改成新字符串。 ide
如何經過簡單的update
來完成此操做? 函數
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
參數數據類型ntext
對replace
函數的參數1無效。 code
若是目標列類型不是varchar / nvarchar之類的文本 ,咱們須要將列值轉換爲字符串,而後將其轉換爲: xml
update URL_TABLE set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat') where URL_ID='150721_013359670'
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable
其中「ImagePath」是個人列名。
「NewImagePath」是臨時列名「ImagePath」的名稱
「〜/」是我當前的字符串。(舊字符串)
「../」是我須要的字符串。(新字符串)
「tblMyTable」是我在數據庫中的表。
字符串
您還能夠在運行時替換電子郵件模板的大文本,這是一個簡單的示例。 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
您能夠使用此查詢table
update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'