Menggunakan XML dalam kolom komputasi
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Instans XML dapat muncul sebagai sumber untuk kolom komputasi, atau sebagai jenis kolom komputasi. Contoh dalam artikel ini memperlihatkan cara menggunakan XML dengan kolom komputasi.
Membuat kolom komputasi dari kolom XML
Dalam pernyataan berikut CREATE TABLE
, xml
kolom jenis (col2
) dihitung dari col1
:
CREATE TABLE T ( col1 varchar(max), col2 AS CAST(col1 AS xml) );
Tipe data xml juga dapat muncul sebagai sumber dalam membuat kolom komputasi, seperti yang diperlihatkan dalam pernyataan berikutCREATE TABLE
:
CREATE TABLE T ( col1 xml, col2 as cast(col1 as varchar(1000) ));
Anda dapat membuat kolom komputasi dengan mengekstrak nilai dari kolom jenis seperti yang xml
diperlihatkan dalam contoh berikut. Karena metode tipe data xml tidak dapat digunakan secara langsung dalam membuat kolom komputasi, contoh pertama-tama menentukan fungsi (my_udf
) yang mengembalikan nilai dari instans XML. Fungsi ini membungkus value()
metode jenis xml
. Nama fungsi kemudian ditentukan dalam CREATE TABLE
pernyataan untuk kolom komputasi.
Catatan
Jika Anda ingin membuat kolom komputasi yang dipertahankan berdasarkan fungsi ini, fungsi itu sendiri harus deterministik. Untuk informasi selengkapnya, lihat Fungsi deterministik dan nondeterministik.
CREATE FUNCTION my_udf(@var xml) returns int
AS BEGIN
RETURN @var.value('(/ProductDescription/@ProductModelID)[1]' , 'int')
END;
GO
-- Use the function in CREATE TABLE.
CREATE TABLE T (col1 xml, col2 as dbo.my_udf(col1) );
GO
-- Try adding a row.
INSERT INTO T values('<ProductDescription ProductModelID="1" />');
GO
-- Verify results.
SELECT col2, col1
FROM T;
Seperti dalam contoh sebelumnya, contoh berikut mendefinisikan fungsi untuk mengembalikan instans jenis xml untuk kolom komputasi. Di dalam fungsi, query()
metode jenis data xml mengambil nilai dari xml
parameter jenis.
CREATE FUNCTION my_udf(@var xml)
RETURNS xml AS
BEGIN
RETURN @var.query('ProductDescription/Features')
END;
Dalam pernyataan berikut CREATE TABLE
, Col2
adalah kolom komputasi yang menggunakan data XML (<Features>
elemen) yang dikembalikan oleh fungsi:
CREATE TABLE T (Col1 xml, Col2 as dbo.my_udf(Col1) );
-- Insert a row in table T.
INSERT INTO T VALUES('
<ProductDescription ProductModelID="1" >
<Features>
<Feature1>description</Feature1>
<Feature2>description</Feature2>
</Features>
</ProductDescription>');
-- Verify the results.
SELECT *
FROM T;
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk