Automodus-Heuristiken bei der Gestaltung zurückgegebener XML-Daten
Gilt für: SQL Server Azure SQL-Datenbank Azure Synapse Analytics Analytics Platform System (PDW)
Der AUTO-Modus ermittelt die Form des zurückgegebenen XML-Codes auf der Grundlage der Abfrage. Um zu ermitteln, wie die Elemente geschachtelt werden sollen, vergleicht die AUTO-Modus-Heuristik die Spaltenwerte in benachbarten Zeilen. Dabei werden Spalten aller Datentypen, mit Ausnahme von ntext, text, imageund xmlmiteinander verglichen. Spalten des Datentyps (n)varchar(max) und varbinary(max) werden verglichen.
Das folgende Beispiel veranschaulicht die Heuristik des AUTO-Modus beim Ermitteln der Form des resultierenden XML-Codes:
SELECT T1.Id, T2.Id, T1.Name
FROM T1, T2
WHERE Col1 = 1 /* actual predicate goes here*/
ORDER BY T1.Id
FOR XML AUTO;
Um zu bestimmen, wo ein neues <T1>
Element beginnt, werden alle Spaltenwerte von T1, mit Ausnahme von ntext, Text, Bild und XML, verglichen, wenn der Schlüssel in der Tabelle T1 nicht angegeben ist. Nehmen wir als Nächstes an, dass die Name -Spalte den Typ nvarchar(40) aufweist und dass die SELECT-Anweisung das folgende Rowset zurückgibt:
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
Die Heuristik des AUTO-Modus vergleicht alle Werte aus Tabelle T1, die Id- und die Name-Spalten. Die ersten beiden Zeilen haben die gleichen Werte für die und Name
die Id
Spalten. Daher wird dem Ergebnis ein einzelnes <T1>
Element mit zwei <T2>
untergeordneten Elementen hinzugefügt.
Der folgende XML-Code wird zurückgegeben:
<T1 Id="1" Name="Andrew">
<T2 Id="2" />
<T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
<T2 Id="4" />
</T>
Gehen Sie nun davon aus, dass die Name
Spalte vom Texttyp ist. Die Heuristiken für den AUTO-Modus vergleichen die Werte für diesen Typ nicht. Stattdessen wird davon ausgegangen, dass die Werte nicht identisch sind. Dadurch wird der folgende XML-Code wie in der folgenden Ausgabe generiert:
<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>
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für