Rozwiązania heurystyczne służące trybie AUTO w kształtowania zwrot XML
Tryb AUTO Określa kształt zwracane XML na podstawie kwerendy.Przy ustalaniu, w jaki sposób elementy mają być zagnieżdżone, AUTO trybu rozwiązania heurystyczne służące do porównywania wartości kolumna w sąsiednich wierszach.Kolumny wszystkie typy z wyjątkiem ntext, tekst, obraz, and XML, są porównywane.Kolumny typu (n)varchar(max) and varbinary(max) są porównywane.
Poniższy przykład ilustruje heuristics trybie AUTO 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 określić, w przypadku, gdy nowy <T1> element zostanie uruchomiony, wszystkie wartości kolumna T1, z wyjątkiem ntext, tekst, obraz and XML, są porównywane, jeżeli nie określono klucz na tabela T1.Następnie Załóżmy, że Nazwa 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
Rozwiązania heurystyczne służące AUTO trybu porównywania 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 dwa <TABELA T2> elementy podrzędność jest dodawane do wyników.
XML, który jest zwracany 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>
Teraz założono, że kolumna Nazwa jest tekst typu.Rozwiązania heurystyczne służące AUTO trybu nie porównać wartości dla tego typu.Zamiast tego zakłada się, że wartości nie są takie same.To powoduje generowanie 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>