Bagikan melalui


Heuristik mode OTOMATIS dalam membentuk XML yang dikembalikan

Berlaku untuk: SQL Server Azure SQL DatabaseNot supported.Azure Synapse Analytics Analytics Not supported. 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>

Baca juga