Megosztás a következőn keresztül:


Példa: Adja meg az ELEMENTXSINIL-irányelvet

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az elemközpontú XML lekérésére szolgáló ELEM-direktíva megadásakor, ha az oszlop NULL értékkel rendelkezik, a megfelelő elemet nem az EXPLICIT mód hozza létre. Igény szerint megadhatja az ELEMENTXSINIL-direktívát a NULL értékek generáló elemének lekéréséhez, ahol az xsi:nil attribútum értéke IGAZ.

Az alábbi lekérdezés egy alkalmazotti címet tartalmazó XML-t hoz létre. Az AddressLine2 és City oszlopok esetében az oszlopnevek határozzák meg a ELEMENTXSINIL irányelvet. Ez létrehozza a NULL értékek elemét a AddressLine2 és City oszlopokban a sorhalmazon belül.

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;

Ez a részleges eredmény:

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

Lásd még