Heuristik mode OTOMATIS dalam membentuk XML yang dikembalikan
Berlaku untuk: SQL Server Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)
Mode OTOMATIS menentukan bentuk XML yang dikembalikan berdasarkan kueri. Dalam menentukan bagaimana elemen akan ditumpuk, heuristik mode OTOMATIS membandingkan nilai kolom dalam baris yang berdekatan. Kolom semua jenis, kecuali ntext, teks, gambar, dan xml, dibandingkan. Kolom jenis (n)varchar(maks) dan varbinary(maks) dibandingkan.
Contoh berikut mengilustrasikan heuristik mode OTOMATIS yang menentukan bentuk XML yang dihasilkan:
SELECT T1.Id, T2.Id, T1.Name
FROM T1, T2
WHERE Col1 = 1 /* actual predicate goes here*/
ORDER BY T1.Id
FOR XML AUTO;
Untuk menentukan di mana elemen baru <T1>
dimulai, semua nilai kolom T1, kecuali ntext, teks, gambar, dan xml, dibandingkan jika kunci pada tabel T1 tidak ditentukan. Selanjutnya, asumsikan bahwa kolom Nama adalah nvarchar(40) dan pernyataan SELECT mengembalikan set baris ini:
T1.Id T1.Name T2.Id
-----------------------
1 Andrew 2
1 Andrew 3
1 Nancy 4
Heuristik mode OTOMATIS membandingkan semua nilai tabel T1, Id, dan kolom Nama. Dua baris pertama memiliki nilai yang sama untuk Id
kolom dan Name
. Akibatnya, satu <T1>
elemen, memiliki dua <T2>
elemen anak, ditambahkan ke hasilnya.
Berikut ini adalah XML yang dikembalikan:
<T1 Id="1" Name="Andrew">
<T2 Id="2" />
<T2 Id="3" />
</T1>
<T1 Id="1" Name="Nancy" >
<T2 Id="4" />
</T>
Sekarang asumsikan Name
bahwa kolom berjenis teks . Heuristik mode OTOMATIS tidak membandingkan nilai untuk jenis ini. Sebaliknya, diasumsikan bahwa nilainya tidak sama. Mode ini menghasilkan pembuatan XML seperti yang ditunjukkan dalam output berikut:
<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>