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.
Note
In Azure SQL Database en SQL Database in Microsoft Fabric zijn de USE instructie niet beschikbaar. Maak in plaats daarvan direct verbinding met de beoogde database en voer de rest van het codevoorbeeld uit.
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>