반환된 XML 모양 지정에서 AUTO 모드 추론AUTO Mode Heuristics in Shaping Returned XML

AUTO 모드는 쿼리를 기반으로 반환된 XML의 모양을 결정합니다.AUTO mode determines the shape of returned XML based on the query. 요소 중첩 방법을 결정할 때 AUTO 모드 추론은 인접한 행의 열 값을 비교합니다.In determining how elements are to be nested, AUTO mode heuristics compare column values in adjacent rows. ntext, text, imagexml을 제외한 모든 유형의 열이 비교됩니다.Columns of all types, except ntext, text, image, and xml, are compared. (n)varchar(max)varbinary(max) 유형의 열이 비교됩니다.Columns of type (n)varchar(max) and varbinary(max) are compared.

다음 예에서는 결과 XML의 모양을 결정하는 AUTO 모드 추론에 대해 설명합니다.The following example illustrates the AUTO mode heuristics that determine the shape of the resulting XML:

SELECT T1.Id, T2.Id, T1.Name  
FROM   T1, T2  
WHERE ...  
FOR XML AUTO  
ORDER BY T1.Id  

테이블 T1의 키가 지정되지 않은 경우 새로운 <T1> 요소가 시작되는 위치를 확인하기 위해 ntext, text, imagexml을 제외한 T1의 모든 열 값이 비교됩니다.To determine where a new <T1> element starts, all column values of T1, except ntext, text, image and xml, are compared if the key on the table T1 is not specified. 그런 다음 Name 열이 nvarchar(40)이고 SELECT 문이 이 행 집합을 반환한다고 가정합니다.Next, assume that the Name column is nvarchar(40) and the SELECT statement returns this rowset:

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

AUTO 모드 추론은 테이블 T1, Id 및 Name 열의 모든 값을 비교합니다.The AUTO mode heuristics compare all the values of table T1, the Id and Name columns. 처음 두 행은 Id 및 Name 열에 대한 값이 같기 때문에 두 개의 <T2> 자식 요소가 포함된 하나의 <T1> 요소가 결과에 추가됩니다.Because the first two rows have the same values for the Id and Name columns, one <T1> element having two <T2> child elements is added in the result.

다음은 반환되는 XML입니다.Following is the XML that is returned:

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

이제 Name 열이 text 유형이라고 가정해 보십시오.Now assume that the Name column is of text type. AUTO 모드 추론은 이 유형의 값을 비교하지 않습니다.The AUTO mode heuristics do not compare the values for this type. 그 대신 값이 같지 않다고 가정합니다.Instead, it assumes that the values are not the same. 그 결과 다음과 같이 XML이 생성됩니다.This results in XML generation as shown in the following:

<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>  

참고 항목See Also

FOR XML에서 AUTO 모드 사용Use AUTO Mode with FOR XML