다음을 통해 공유


반환된 XML 형성을 위한 자동 모드 추론

적용 대상: SQL Server Azure SQL 데이터베이스 지원되지 않습니다. Azure Synapse Analytics 지원되지 않습니다. Analytics Platform System(PDW)

자동 모드는 쿼리에 따라 반환되는 XML의 모양을 결정합니다. 요소 중첩 방법을 결정할 때 AUTO 모드 추론은 인접한 행의 열 값을 비교합니다. ntext, text, imagexml을 제외한 모든 유형의 열이 비교됩니다. (n)varchar(max)varbinary(max) 형식의 열이 비교됩니다.

다음 예에서는 결과 XML의 모양을 결정하는 AUTO 모드 추론에 대해 설명합니다.

SELECT T1.Id, T2.Id, T1.Name
FROM   T1, T2
WHERE Col1 = 1 /* actual predicate goes here*/
ORDER BY T1.Id
FOR XML AUTO;

새로운 <T1> 요소가 시작되는 위치를 확인하기 위해 T1 테이블의 키가 지정되지 않은 경우 ntext, text, imagexml을 제외한 T1의 모든 열 값이 비교됩니다. 다음으로 Name 열이 nvarchar(40)이고 SELECT 문이 이 행 집합을 반환한다고 가정합니다.

T1.Id  T1.Name  T2.Id
-----------------------
1       Andrew    2
1       Andrew    3
1       Nancy     4

자동 모드 추론은 테이블 T1의 모든 값, Id 및 Name 열을 비교합니다. 처음 두 행은 IdName 열에 대해 동일한 값을 갖습니다. 결과적으로 <T1> 하위 요소 2개를 포함하는 단일 <T2> 요소가 결과에 추가됩니다.

반환되는 XML은 다음과 같습니다.

<T1 Id="1" Name="Andrew">
    <T2 Id="2" />
    <T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
      <T2 Id="4" />
</T>

이제 Name 열이 text 유형이라고 가정해 보겠습니다. AUTO 모드 추론은 이 형식의 값을 비교하지 않습니다. 대신 값이 동일하지 않다고 가정합니다. 이 모드에서는 다음 출력과 같이 XML이 생성됩니다:

<T1 Id="1" Name="Andrew" >
  <T2 Id="2" />
</T1>
<T1 Id="1" Name="Andrew" >
  <T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
  <T2 Id="4" />
</T1>

참고 항목