Contoh: Tentukan arahan ELEMENTXSINIL

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure 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>
...

Baca juga