2010-07-06 3 views
0

우리는 테이블 "이름"을 갖고 있다고하자깔끔한 XML은

이 : 저를 제공

select r.value('Name[1]', 'nvarchar(10)'), r.value('Surname[1]', 'nvarchar(10)') 
from Names 
for xml path('people') 

간단히 말해서 전체를 어떻게 정리합니까? 이 모든 XML 방법을 수행 할 경우,

당신은 변수를 가질 수

답변

2

이 시도 :

SELECT 
    Name, 
    Surname 
FROM 
    dbo.Names 
FOR XML PATH('person'), ROOT('people') 

FOR XML PATH 각을 둘러싸고있는 태그를 정의 FOR XML ... ROOT은 행 모음을 둘러싼 루트 요소를 정의합니다.

+0

깨끗한 솔루션! 이 오래 돌아왔다! 아이디어가 돌아왔다! 고마워 ! – Baaju

+0

요소에 속성을 원하면 열 이름을 "@columnname"으로 정의하면됩니다. 이 경우 먼저 속성 열을 정의해야하며 그렇지 않으면 오류가 발생합니다. 또한 XML을 출력하는 하위 쿼리를 사용하는 경우 "xml path ('elementname'), type"(또는 하위 쿼리에서 오는 모든 XML을 이스케이프 처리합니다)와 같이 "type"을 포함시켜야합니다. 이 경우 루트를 생략하고 "elementroot"를 별칭으로 사용하면 해당 역할을 대신하게됩니다. – Rob

0

,

Declare @XMLOP xml 
SET @XMLOP = '<people></people>' 

set @XMLOP.modify('  
insert (select r.value('Name[1]', 'nvarchar(10)'), r.value('Surname[1]', 'nvarchar(10)') 
     from Names 
     for xml path('Person')) 
after (/people)[1]  
'); 

SELECT @XMLOP;