Automatyczny tryb heurystyki w kształtowania zwracane XML
Automatyczny tryb Określa kształt XML zwrócone na podstawie kwerendy.Przy ustalaniu, jak elementy mają być zagnieżdżone, automatyczny tryb heurystykę porównać wartości kolumna w sąsiednich wierszach.Kolumny wszystkie typy z wyjątkiem ntext, tekstu, obrazu, i xml, są porównywane.Kolumny typu (n)varchar(max) i varbinary(max) są porównywane.
Poniższy przykład ilustruje heurystykę trybu automatycznego określających kształt wynikowy XML:
SELECT T1.Id, T2.Id, T1.Name
FROM T1, T2
WHERE ...
FOR XML AUTO
ORDER BY T1.Id
Aby ustalić, gdzie nowy <T1> uruchamia elementu wszystkie wartości kolumna tabela t1, z wyjątkiem ntext, tekstu, obrazu i xml, są porównywane, jeżeli nie określono klucz na tabela T1.Następnie należy zakładać, że nazwę kolumna jest nvarchar(40) i instrukcja SELECT zwraca ten zestaw wierszy:
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
Heurystykę trybu automatycznego porównać wartości tabela T1, identyfikator i nazwę kolumny.Ponieważ dwa pierwsze wiersze mają te same wartości dla kolumny Identyfikator i nazwę jednego <T1> element o dwóch <T2> elementów podrzędność jest dodawany w wyniku.
XML, która jest zwracana jest następujący:
<T1 Id="1" Name="Andrew">
<T2 Id="2" />
<T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
<T2 Id="4" />
</T>
Załóżmy teraz, że nazwa kolumna jest tekstu typu.Heurystykę trybu automatycznego porównuje wartości dla tego typu.Zakłada się, że wartości nie są takie same.To wyniki w generowaniu XML, jak pokazano poniżej:
<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>