Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Wenn es sich bei dem Spaltennamen um einen der XPath-Knotentests handelt, wird der Inhalt zugeordnet, wie in der folgenden Tabelle gezeigt. Wenn der Spaltenname ein XPath-Knotentest ist, wird der Inhalt dem entsprechenden Knoten zugeordnet. Wenn der SQL-Typ der Spalte xmlist, wird ein Fehler zurückgegeben.
Spaltenname | Behavior |
---|---|
text() | Für eine Spalte mit dem Namen text() wird der Zeichenfolgenwert in dieser Spalte als Textknoten hinzugefügt. |
comment() | Für eine Spalte mit dem Namen comment() wird der Zeichenfolgenwert in dieser Spalte als XML-Kommentar hinzugefügt. |
node() | Für eine Spalte mit dem Namen node() ist das Ergebnis mit dem eines Platzhalterzeichen-Spaltennamens (* ) identisch. |
processing-instruction(name) | Für eine Spalte mit dem Namen einer Verarbeitungsanweisung wird der Zeichenfolgenwert in dieser Spalte als PI-Wert für den Zielnamen der Verarbeitungsanweisung hinzugefügt. |
Die folgende Abfrage zeigt die Verwendung der Knotentests als Spaltennamen an. Dabei werden Textknoten und Kommentare im XML-Ergebnis hinzugefügt.
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;
Dies ist das Ergebnis:
<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>