Contoh: Tentukan arahan ELEMENTXSINIL
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Saat Anda menentukan arahan ELEMENT untuk mengambil XML yang berpusat pada elemen, jika kolom memiliki nilai NULL, elemen yang sesuai tidak dihasilkan oleh mode EKSPLISIT. Anda dapat secara opsional menentukan direktif ELEMENTXSINIL untuk meminta elemen pembuatan untuk nilai NULL di mana atribut xsi:nil diatur dengan nilai TRUE.
Kueri berikut membuat XML yang menyertakan alamat karyawan. Untuk AddressLine2
kolom dan City
, nama kolom menentukan direktif ELEMENTXSINIL
. Ini menghasilkan elemen untuk nilai NULL di AddressLine2
kolom dan City
dalam set baris.
USE AdventureWorks2022;
GO
SELECT 1 as Tag,
NULL as Parent,
E.BusinessEntityID as [Employee!1!EmpID],
BEA.AddressID as [Employee!1!AddressID],
NULL as [Address!2!AddressID],
NULL as [Address!2!AddressLine1!ELEMENT],
NULL as [Address!2!AddressLine2!ELEMENTXSINIL],
NULL as [Address!2!City!ELEMENTXSINIL]
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
UNION ALL
SELECT 2 as Tag,
1 as Parent,
E.BusinessEntityID,
BEA.AddressID,
A.AddressID,
AddressLine1,
AddressLine2,
City
FROM HumanResources.Employee AS E
INNER JOIN Person.BusinessEntityAddress AS BEA
ON E.BusinessEntityID = BEA.BusinessEntityID
INNER JOIN Person.Address AS A
ON BEA.AddressID = A.AddressID
ORDER BY [Employee!1!EmpID],[Address!2!AddressID]
FOR XML EXPLICIT;
Ini adalah hasil parsial:
<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EmpID="1"
AddressID="249">
<Address AddressID="249">
<AddressLine1>4350 Minute Dr.</AddressLine1>
<AddressLine2 xsi:nil="true" />
<City>Minneapolis</City>
</Address>
</Employee>
...