2011-02-25 3 views
3

Cust에서 요소로 요소 이름을 변경하는 방법?SQL Server에서 xml 요소 이름 수정

<Cust id="1"> 
    <Name>aaaaaaaaaa</Name> 
    <Desc>bbbbbbbbbb</Desc> 
</Cust> 

내가 문 다음 사용하고

select @myXml.query('/node()[1]/node()') for xml raw('Customer') 

SQL은 속성

<Customer> 
    <Name>aaaaaaaaaa</Name> 
    <Desc>bbbbbbbbbb</Desc> 
</Customer> 

답변

1

이 시도 :

SELECT 
    @myXml.value('(/Cust/@id)[1]', 'int') AS '@id', 
    @myXml.query('/node()[1]/node()') 
FOR XML PATH('Customer') 

나에게의 출력을 제공합니다 다음 FOR XML PATH

<Customer id="1"> 
    <Name>aaaaaaaaaa</Name> 
    <Desc>bbbbbbbbbb</Desc> 
</Customer> 

을, 당신은 매우 쉽게 변환 손실 가도록 속성을 "복구"할 수 있습니다.

1

당신은 대체 사용할 수를 제거합니다

replace(replace(@YourXml, '<Cust id', '<Customer id)', '</Cust>', '</Customer>') 

<로, 매우 안전합니다 나는 XML의 데이터로 유효하지 않은 경우 &lt; 또는 ASCII 또는 UNICODE 시퀀스로 나타납니다.

+0

비 - 은혜 방법입니다. 다른 아이디어? – chomik

+0

@chomik : SQL Server의 XML 수정 지원은 전적으로 "비 - 유예"입니다. 이 클라이언트 사이트를 고려하십시오. :) – Andomar

관련 문제