Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si le nom de colonne est l’un des tests de nœud XPath, le contenu est mappé comme indiqué dans le tableau suivant. Lorsque le nom de colonne est un test de nœud XPath, le contenu est mappé au nœud correspondant. Si le type SQL de la colonne est xml, une erreur est retournée.
| Nom de la colonne | Comportement |
|---|---|
| text() | Pour une colonne portant le nom de text(), la valeur de chaîne de cette colonne est ajoutée en tant que nœud de texte. |
| comment() | Pour une colonne portant le nom de commentaire(), la valeur de chaîne de cette colonne est ajoutée en tant que commentaire XML. |
| node() | Pour une colonne portant le nom de node(), le résultat est le même que lorsque le nom de la colonne est un caractère générique (*). |
| instruction-de-traitement(name) | Pour une colonne portant le nom d’une instruction de traitement, la valeur de chaîne de cette colonne est ajoutée en tant que valeur PI pour le nom cible de l’instruction de traitement. |
La requête suivante montre l’utilisation des tests de nœud en tant que noms de colonnes. Il ajoute des nœuds de texte et des commentaires dans le code XML résultant.
USE AdventureWorks2012;
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;
Voici le résultat obtenu :
<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>