Bagikan melalui


Mengikat Data Relasional Di Dalam Data XML

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Anda dapat menentukan Metode Tipe Data xml terhadap variabel atau kolom tipe data xml . Misalnya, Metode kueri() (Jenis Data xml) menjalankan XQuery yang ditentukan terhadap instans XML. Saat Anda membuat XML dengan cara ini, Anda mungkin ingin membawa nilai dari kolom jenis non-XML atau variabel Transact-SQL. Proses ini disebut sebagai mengikat data relasional di dalam XML.

Untuk mengikat data relasional non-XML di dalam XML, Mesin Database SQL Server menyediakan fungsi pseudo berikut:

Anda dapat menggunakan fungsi ini dengan metode tipe data xml kapan pun Anda ingin mengekspos nilai relasional di dalam XML.

Anda tidak dapat menggunakan fungsi ini untuk mereferensikan data dalam kolom atau variabel xml, jenis yang ditentukan pengguna CLR, tanggalwaktu, smalldatetime, teks, ntext, sql_variant, dan jenis gambar .

Selain itu, pengikatan ini untuk tujuan baca-saja. Artinya, Anda tidak dapat menulis data dalam kolom yang menggunakan fungsi-fungsi ini. Misalnya, sql:variable("@x")="some expression" tidak diizinkan.

Contoh: Kueri Lintas domain Menggunakan sql:variable()

Contoh ini menunjukkan bagaimana sql:variable() dapat mengaktifkan aplikasi untuk membuat parameter kueri. ISBN diteruskan dengan menggunakan variabel @isbnSQL . Dengan mengganti konstanta dengan sql:variable(), kueri dapat digunakan untuk mencari ISBN apa pun dan bukan hanya yang ISBN-nya adalah 0-7356-1588-2.

DECLARE @isbn VARCHAR(20)  
SET     @isbn = '0-7356-1588-2'  
SELECT  xCol  
FROM    T  
WHERE   xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1  

sql:column() dapat digunakan dengan cara yang sama dan memberikan manfaat tambahan. Indeks di atas kolom dapat digunakan untuk efisiensi, seperti yang diputuskan oleh pengoptimal kueri berbasis biaya. Selain itu, kolom komputasi dapat menyimpan properti yang dipromosikan.

Lihat Juga