2010-02-19 3 views
2

내가 일하고을 FOR XMLFOR XML을 사용하여 중첩 된 XML의 요소 선택 - 우수 사례

내 결과 XML에 중첩 요소에 대한 가장 좋은 방법은 무엇입니까를 사용하여 SQL Server 05에서 XML 형식으로 데이터를 검색에?

은 현재 내가이 일을하고있다 :

Select 
    (
     Select 
      [Col1] As [Col1], 
      [Col2] As [Col2] 
     From [dbo].[NestedTable] As T1 
     Where T0.[Key] = T1.[Key] 
     FOR XML PATH('NestedTable'), TYPE 
    ), 
    [Col1] As [Col1], 
    [Col2] As [Col2], 
From [dbo].[TopLevelTable] As T0 
FOR XML PATH('TopLevelTable'), ROOT('TopLevelTableItems') 

는 그러나, 나는 때문에 상관 서브 쿼리에이의 성능에 대한 걱정. 내가 두 테이블에서 규칙적인 내부 조인을 할 수 있도록 최상위 노드가 고유하고 적절한 자식 노드 모음이있는 Xml을 만들 수 있도록 사용할 수있는 그룹 별 유형 기능이 있습니까?

편집 응답이 부족할 경우 불가능할 수도 있습니다. 아마도 더 좋은 질문은 다음과 같습니다.

SQL Server에서 Xml을 생성하는 좋은 방법이 있습니까? 아니면 코드를 CLR로 옮겨서 거기에서 생성해야합니까?

답변

0

가능한 경우 상관 관계가있는 하위 쿼리를 피해야합니다 (작은 테이블의 보장이 큰 문제는 아닙니다).

아마도 XML 스키마를 먼저 정의해야합니다 (아마도 이것을 소비하고 특정 형식을 예상하는 것으로 추정).

+0

Hey Mitch, Yeh XML을 사용하기 전에 유효성을 검사하는 XSD가 있습니다. 내가 가진 문제는 상관 된 하위 쿼리를 사용하지 않고 중첩 된 XML 구조를 얻는 것입니다. XML 스키마를 사용하여 SQL에서 XML을 생성하는 것과 관련하여 뭔가 빠졌습니까? –