用來形成傳回之 XML 的 AUTO 模式啟發學習法
適用於: SQL Server Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)
AUTO 模式可根據查詢決定傳回的 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 以外的所有資料行值。 接下來,假設 Name 資料行為 nvarchar(40),且 SELECT 陳述式會傳回以下資料列集:
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
AUTO 模式啟發學習法會比較資料表 T1、Id 和 Name 資料行的所有值。 前兩個資料列的 Id
和 Name
資料行具有相同的值。 因此,將具有兩個 <T2>
子元素的單一 <T1>
元素新增至結果。
以下是傳回的 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>