5
내가하고 싶은 다음 예는 XQuery에게는 내가 좋아하는 것 2005
를 사용하여 SQL Server 2005의 XML 노드의 텍스트의 일부를 업데이트 할 수있는 방법을 알고 "매우"와 "우수"라는 단어를 대체하는
declare @xml as xml
set @xml = '<root><info>well hello this is a very good example</info></root>'
declare @replacement as varchar(50)
set @replacement = 'excellent'
declare @search as varchar(50)
set @search = 'very'
set @xml.modify('replace value of (/root/info/text())[1]
with replace((/root/info/text())[1],sql:variable("@search"),sql:variable("@replacement"))'
)
select @xml
교체 할이 단어가되지는 A XML 태그의 내용이기 때문에 어떤 도움을
하지만 정보 태그의 내용이 varchar (1000)보다 크면 nvarchar (max)와 비슷하지만 어떻게 처리합니까? (예 : 정보의 내용이 html 블록이고 데이터베이스를 통해 html 블록의 값을 대체 할 것임) – Peter
@peter : 내용이 실제로 XML 태그 (또는 XML 속성)의 전체 내용이 아니라면, 어쨌든이 방법은 나쁘다고 생각합니다. SQL Server 자체가 아닌 해당 데이터를 사용하는 응용 프로그램에서이 작업을 수행합니다. 필자가 전체 XML 태그의 컨텐트를 새로운 컨텐트로 대체 할 수있는 경우에만이 접근법을 제안하는 것이 제 생각입니다. –