Aracılığıyla paylaş


Örnek: ELEMENTXSINIL yönergesini belirtme

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Öğe merkezli XML'yi almak için ELEMENT yönergesini belirttiğinizde, sütunun NULL değeri varsa, ilgili öğe EXPLICIT modu tarafından oluşturulmaz. İsteğe bağlı olarak, xsi:nil özniteliğinin TRUE değeriyle ayarlandığı NULL değerler için oluşturma öğesini istemek üzere ELEMENTXSINIL yönergesini belirtebilirsiniz.

Aşağıdaki sorgu, çalışan adresi içeren XML oluşturur. AddressLine2 ve City sütunları için, sütun adları ELEMENTXSINIL yönergesini belirtir. Bu, satır kümesindeki AddressLine2 ve City sütunlarındaki NULL değerleri için öğeyi oluşturur.

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;

Kısmi sonuç şu şekildedir:

<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>
...

Ayrıca bakınız