답변:
위의 시도했지만 올바른 결과를 얻지 못했습니다. 다음 중 하나가 수행됩니다.
update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
where path like '%oldstring%'
?
모든 답변은 훌륭하지만 좋은 예를 드리고 싶습니다.
select replace('this value from table', 'table', 'table but updated')
이 SQL 문은 주어진 명령문 (첫 번째 매개 변수) 내에 단어 "table"(두 번째 매개 변수)의 존재를 세 번째 매개 변수로 대체합니다.
초기 값은 this value from table
이지만 replace 기능을 실행 한 후에는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
이것이 더 나은 시각화를 제공하기를 바랍니다.
대상 열 유형이 text 와 같은 varchar / nvarchar 이외의 경우 열 값을 문자열로 캐스트 한 후 다음과 같이 변환해야합니다.
update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
replace 기능을 사용하여 경로를 교체해야합니다.
update table_name set column_name = replace(column_name, 'oldstring', 'newstring')
여기 column_name
변경하려는 열을 나타냅니다.
그것이 효과가 있기를 바랍니다.
런타임에 전자 메일 템플릿의 큰 텍스트를 바꿀 수도 있습니다. 여기 간단한 예가 있습니다.
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
where path like '%oldstring%'
데이터가 많으면 일반적으로 추가 합니다.