Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Если путь, указанный в качестве имени столбца, — data(), значение рассматривается как атомарное значение в созданном XML. Пробел добавляется в XML, если следующий элемент в процессе сериализации также является атомарным значением. Это полезно при создании типизированных элементов списка и значений атрибутов. Следующий запрос извлекает идентификатор модели продукта, имя и список продуктов в этой модели продукта.
USE AdventureWorks2012;
GO
SELECT ProductModelID AS "@ProductModelID",
Name AS "@ProductModelName",
(SELECT ProductID AS "data()"
FROM Production.Product
WHERE Production.Product.ProductModelID =
Production.ProductModel.ProductModelID
FOR XML PATH ('')) AS "@ProductIDs"
FROM Production.ProductModel
WHERE ProductModelID= 7
FOR XML PATH('ProductModelData');
Вложенный SELECT получает список идентификаторов продуктов. Он указывает "data()" в качестве имени столбца для идентификаторов продуктов. Так как режим PATH задает пустую строку для имени элемента строки, не создается элемент строки. Вместо этого значения возвращаются как назначенные атрибуту <ProductModelData> ProductIDs элемента строки родительского SELECT. Результат:
<ProductModelData ProductModelID="7"
ProductModelName="HL Touring Frame"
ProductIDs="885 887 888 889 890 891 892 893" />