Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Если имя столбца является одним из тестов узла XPath, содержимое сопоставляется, как показано в следующей таблице. Если имя столбца является тестом узла XPath, содержимое сопоставляется с соответствующим узлом. Если тип SQL столбца равен xml, возвращается ошибка.
| Имя столбца | Поведение |
|---|---|
| text() | Для столбца с именем text() строковое значение в этом столбце добавляется в виде текстового узла. |
| комментарий() | Для столбца с именем comment() строковое значение в этом столбце добавляется в виде XML-комментария. |
| node() | Для столбца с именем node() результат такой же, как если бы имя столбца было подстановочным знаком (*). |
| инструкция обработки (name) | Для столбца с именем инструкции обработки строковое значение в этом столбце добавляется в качестве значения pi для целевого имени инструкции обработки. |
Следующий запрос демонстрирует использование тестов узлов в качестве имен столбцов. Он добавляет текстовые узлы и примечания в результирующем XML-коде.
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;
Результат:
<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>