Contoh: Kolom XMLType Kueri
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Kueri berikut menyertakan kolom jenis xml . Kueri mengambil ID model produk, nama, dan langkah-langkah manufaktur di lokasi pertama dari Instructions
kolom jenis xml .
Contoh
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/MI:root/MI:Location[1]/MI:step')
FROM Production.ProductModel
FOR XML RAW ('ProductModelData')
GO
Berikut ini adalah hasilnya. Tabel menyimpan instruksi manufaktur hanya untuk beberapa model produk. Langkah-langkah manufaktur dikembalikan sebagai subelemen <ProductModelData>
elemen dalam hasilnya.
<ProductModelData ProductModelID="5" Name="HL Mountain Frame" />
<ProductModelData ProductModelID="6" Name="HL Road Frame" />
<ProductModelData ProductModelID="7" Name="HL Touring Frame">
<MI:step> ... </MI:step>
<MI:step> ... </MI:step>
</ProductModelData>
Jika kueri menentukan nama kolom untuk XML yang dikembalikan oleh XQuery, seperti yang ditentukan dalam pernyataan berikut SELECT
, langkah-langkah manufaktur dibungkus dalam elemen yang memiliki nama yang ditentukan.
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/MI:root/MI:Location[1]/MI:step') as ManuSteps
FROM Production.ProductModel
FOR XML RAW ('ProductModelData');
GO
Ini adalah hasilnya:
<ProductModelData ProductModelID="5" Name="HL Mountain Frame" />
<ProductModelData ProductModelID="6" Name="HL Road Frame" />
<ProductModelData ProductModelID="7" Name="HL Touring Frame">
<ManuSteps>
<MI:step ... </MI:step>
<MI:step ... </MI:step>
</ManuSteps>
</ProductModelData>
Kueri berikut menentukan arahan ELEMENTS
. Oleh karena itu, hasil yang dikembalikan bersifat elemen-sentris. Opsi XSINIL
yang ditentukan dengan direktif ELEMENTS
mengembalikan <ManuSteps>
elemen, bahkan jika kolom yang sesuai dalam set baris adalah NULL.
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"
/MI:root/MI:Location[1]/MI:step
') as ManuSteps
FROM Production.ProductModel
FOR XML RAW ('ProductModelData'), root('MyRoot'), ELEMENTS XSINIL
GO
Ini adalah hasilnya:
<MyRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
<ProductModelData>
<ProductModelID>6</ProductModelID>
<Name>HL Road Frame</Name>
<ManuSteps xsi:nil="true" />
</ProductModelData>
<ProductModelData>
<ProductModelID>7</ProductModelID>
<Name>HL Touring Frame</Name>
<ManuSteps>
<MI:step ... </MI:step>
<MI:step ...</MI:step>
...
</ManuSteps>
</ProductModelData>
</MyRoot>