Sintaks dasar klausa FOR XML
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mode FOR XML dapat berupa RAW, AUTO, EXPLICIT, atau PATH. Ini menentukan bentuk XML yang dihasilkan.
Penting
Direktif XMLDATA ke opsi FOR XML tidak digunakan lagi. Gunakan pembuatan XSD dalam kasus mode RAW dan AUTO. Tidak ada penggantian untuk direktif XMLDATA dalam mode EXPLICT. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.
Sintaks
Berikut ini adalah sintaks dasar yang dijelaskan dalam Klausul FOR (Transact-SQL).
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
Sintaks untuk Azure SQL Database
Untuk dokumentasi SELECT...Untuk klausa XML yang juga berlaku untuk Azure SQL Database, lihat UNTUK XML (SQL Server).
Argumen
RAW [('ElementName')]
Mengambil hasil kueri dan mengubah setiap baris dalam hasil yang diatur ke dalam elemen XML yang memiliki pengidentifikasi generik, <row />
, sebagai tag elemen. Anda dapat secara opsional menentukan nama untuk elemen baris saat Anda menggunakan direktif ini. XML yang dihasilkan akan menggunakan yang ditentukan ElementName
sebagai elemen baris yang dihasilkan untuk setiap baris. Untuk informasi selengkapnya, lihat Menggunakan Mode RAW dengan FOR XML.
AUTO
Mengembalikan hasil kueri di pohon XML berlapis sederhana. Setiap tabel dalam klausa FROM yang setidaknya satu kolomnya tercantum dalam klausa SELECT diwakili sebagai elemen XML. Kolom yang tercantum dalam klausa SELECT dipetakan ke atribut elemen yang sesuai. Untuk informasi selengkapnya, lihat Menggunakan Mode OTOMATIS dengan FOR XML.
EKSPLISIT
Menentukan bahwa bentuk pohon XML yang dihasilkan ditentukan secara eksplisit. Dengan menggunakan mode ini, kueri harus ditulis dengan cara tertentu sehingga informasi tambahan tentang berlapis yang Anda inginkan ditentukan secara eksplisit. Untuk informasi selengkapnya, lihat Menggunakan Mode EKSPLISIT dengan FOR XML.
PATH
Menyediakan cara yang lebih sederhana untuk mencampur elemen dan atribut, dan untuk memperkenalkan sarang tambahan untuk mewakili properti yang kompleks. Anda dapat menggunakan kueri mode EKSPLISIT FOR XML untuk membuat XML semacam ini dari set baris, tetapi mode PATH menyediakan alternatif yang lebih sederhana untuk kueri mode EKSPLISIT yang mungkin rumit. Mode PATH, bersama dengan kemampuan untuk menulis kueri XML berlapis dan direktif TYPE untuk mengembalikan instans jenis xml , memungkinkan Anda menulis kueri dengan kompleksitas yang lebih sedikit. Ini menyediakan alternatif untuk menulis kueri mode paling EKSPLISIT. Secara default, mode PATH menghasilkan pembungkus <row>
elemen untuk setiap baris dalam tataan hasil. Anda dapat secara opsional menentukan nama elemen. Jika Anda melakukannya, nama yang ditentukan digunakan sebagai nama elemen pembungkus. Jika Anda menyediakan string (FOR XML PATH (''))
kosong, tidak ada elemen pembungkus yang dihasilkan. Untuk informasi selengkapnya, lihat Menggunakan Mode JALUR dengan FOR XML.
MLDATA
Menentukan bahwa skema XML-Data Reduced (XDR) sebaris harus dikembalikan. Skema ditambahkan ke dokumen sebagai skema sebaris. Untuk sampel kerja, lihat Menggunakan Mode RAW dengan FOR XML.
XMLSCHEMA
Mengembalikan Skema XML W3C sebaris (XSD). Anda dapat secara opsional menentukan URI namespace target saat menentukan direktif ini. Ini mengembalikan namespace yang ditentukan dalam skema. Untuk informasi selengkapnya, lihat Membuat Skema XSD Sebaris. Untuk sampel kerja, lihat Menggunakan Mode RAW dengan FOR XML.
ELEMEN
Jika opsi ELEMENTS ditentukan, kolom dikembalikan sebagai subelemen. Jika tidak, atribut tersebut dipetakan ke atribut XML. Opsi ini hanya didukung dalam mode RAW, AUTO, dan PATH. Anda dapat secara opsional menentukan XSINIL atau ABSENT saat anda menggunakan direktif ini. XSINIL menentukan bahwa elemen yang memiliki atribut xsi:nil diatur ke True dibuat untuk nilai kolom NULL. Secara default atau ketika ABSENT ditentukan bersama dengan ELEMENTS, tidak ada elemen yang dibuat untuk nilai NULL. Untuk sampel kerja, lihat Menggunakan Mode RAW dengan FOR XML dan Menggunakan Mode OTOMATIS dengan FOR XML.
BINER BASE64
Jika opsi BINARY Base64 ditentukan, data biner apa pun yang dikembalikan oleh kueri diwakili dalam format yang dikodekan base64. Untuk mengambil data biner dengan menggunakan mode RAW dan EXPLICIT, opsi ini harus ditentukan. Dalam mode OTOMATIS, data biner dikembalikan sebagai referensi secara default. Untuk sampel kerja, lihat Menggunakan Mode RAW dengan FOR XML.
TYPE
Menentukan bahwa kueri mengembalikan hasil sebagai jenis xml . Untuk informasi selengkapnya, lihat DIREKTIF TIPE di Untuk Kueri XML.
ROOT [('RootName')]
Menentukan bahwa elemen tingkat atas tunggal ditambahkan ke XML yang dihasilkan. Anda dapat secara opsional menentukan nama elemen akar yang akan dihasilkan. Nilai defaultnya adalah <root>
.