我有一個引用路徑(UNC或其他)的表(SQL Sever),但現在路徑將發生更改。在路徑列中,我有很多記錄,我需要更改路徑的一部分,但不是整個路徑。我需要將每個記錄中的相同字符串更改爲新字符串。如何替換SQL Server表中的字符串列
我該如何做一個簡單的更新?
我有一個引用路徑(UNC或其他)的表(SQL Sever),但現在路徑將發生更改。在路徑列中,我有很多記錄,我需要更改路徑的一部分,但不是整個路徑。我需要將每個記錄中的相同字符串更改爲新字符串。如何替換SQL Server表中的字符串列
我該如何做一個簡單的更新?
正是這種簡單:
update my_table
set path = replace(path, 'oldstring', 'newstring')
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')
魅力!像一輛擁有百萬加侖汽油和開放高速公路的古老rustik自行車! – Skynet 2014-09-24 11:39:25
我試過以上,但它並沒有得到正確的結果。下面的人做:
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
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無效。
如果目標列類型不是爲varchar/nvarchar的其他類似文本,我們需要轉換的列值的字符串,然後將其轉換爲:
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」 是temporery 列名insted的的 「ImagePath的」
「〜/」 是我當前字符串。(老 字符串)
「../」 是我requried字符串。(新字符串)
「tblMyTable」 被我的表在數據庫中。
您還可以在運行時替換電子郵件模板的大文本,下面是一個簡單示例。
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%'
所有的答案都是偉大的,但我只是想給你一個很好的例子
select replace('this value from table', 'table', 'table but updated')
這個SQL語句將替換詞的存在使用第三個參數
在給定語句(第一個參數)內的「表」 (第二個參數)初值爲this value from table
但在執行替換功能後,這將是this value from table but updated
,這裏是例如一個真實的例子
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
希望這給你更好的可視化
如果有很多數據,我通常會添加`像'%oldstring%'這樣的路徑。 – 2015-11-02 20:48:44
這裏的條件是有意義的,因爲如果我在表中有50行,並且如果我用替換函數替換10行,它會影響所有50行,即使它取代了10行(如果您沒有條件)。但是如果你有上述評論中提到的條件,它只會影響10行。 – 2017-10-02 18:52:30