반환된 XML 형성을 위한 자동 모드 추론
적용 대상: SQL Server Azure SQL Database Azure Synapse Analytics PDW(Analytics Platform System)
자동 모드는 쿼리에 따라 반환되는 XML의 모양을 결정합니다. 요소 중첩 방법을 결정할 때 AUTO 모드 추론은 인접한 행의 열 값을 비교합니다. ntext, text, image 및 xml을 제외한 모든 유형의 열이 비교됩니다. (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, image 및 xml을 제외한 T1의 모든 열 값이 비교됩니다. 다음으로 Name 열이 nvarchar(40)이고 SELECT 문이 이 행 집합을 반환한다고 가정합니다.
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
자동 모드 추론은 테이블 T1의 모든 값, Id 및 Name 열을 비교합니다. 처음 두 행은 Id
및 Name
열에 대해 동일한 값을 갖습니다. 결과적으로 <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>