Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Als de kolomnaam een van de XPath-knooppunttests is, wordt de inhoud toegewezen zoals weergegeven in de onderstaande tabel. Wanneer de kolomnaam een XPath-knooppunttest is, wordt de inhoud toegewezen aan het bijbehorende knooppunt. Als het SQL-type van de kolom XML is, wordt er een fout geretourneerd.
| Kolomnaam | Gedrag |
|---|---|
| text() | Voor een kolom met de naam text(), wordt de tekenreekswaarde in die kolom toegevoegd als een tekstknooppunt. |
| comment() | Voor een kolom met de naam van comment(), wordt de tekenreekswaarde in die kolom toegevoegd als xml-opmerking. |
| node() | Voor een kolom met de naam node() is het resultaat hetzelfde als wanneer de kolomnaam een jokerteken (*) is. |
| verwerkingsinstructie (naam) | Voor een kolom met de naam van een verwerkingsinstructie wordt de tekenreekswaarde in die kolom toegevoegd als de PI-waarde voor de doelnaam van de verwerkingsinstructie. |
De volgende query toont het gebruik van de knooppunttests als kolomnamen. Hiermee worden tekstknooppunten en opmerkingen toegevoegd aan de resulterende XML.
USE AdventureWorks2022;
GO
SELECT E.BusinessEntityID "@EmpID",
'Example of using node tests such as text(), comment(), processing-instruction()' as "comment()",
'Some PI' as "processing-instruction(PI)",
'Employee name and address data' as "text()",
'middle name is optional' as "EmpName/text()",
FirstName as "EmpName/First",
MiddleName as "EmpName/Middle",
LastName as "EmpName/Last",
AddressLine1 as "Address/AddrLine1",
AddressLine2 as "Address/AddrLIne2",
City as "Address/City"
FROM HumanResources.Employee AS E
INNER JOIN Person.Person AS P
ON P.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS BAE
ON BAE.BusinessEntityID = E.BusinessEntityID
INNER JOIN Person.Address AS A
ON BAE.AddressID = A.AddressID
WHERE E.BusinessEntityID=1
FOR XML PATH;
Dit is het resultaat:
<row EmpID="1">
<!--Example of using node tests such as text(), comment(), processing-instruction() -->
<?PI Some PI?>
Employee name and address data
<EmpName>middle name is optional
<First>Ken</First>
<Last>Sánchez</Last>
</EmpName>
<Address>
<AddrLine1>4350 Minute Dr.</AddrLine1>
<City>Minneapolis</City>
</Address>
</row>