是什么意思
FOR XML PATH('')?
它代表什么。因为它没有根节点。
答案 0 :(得分:4)
关于" Root"似乎有些混乱。和"元素"。在XML中,根是树顶部的单个节点。
如果我们指定FOR XML PATH没有任何跟随,那么我们得到一组名为" Row"的XML元素。这是默认名称。
USE AdventureWorks2016CTP3;
GO
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH;
我们可以像这样为封闭的XML元素指定一个不同的名称。
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('Person');
如果我们希望将XML元素包含在顶级根元素中,我们可以像这样指定它。
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('Person'),
ROOT('People');
为元素名称指定一个空字符串,使其省略了封闭的XML元素。这似乎是一件非常奇怪的事情。我无法想象为什么有人会这样做。
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID BETWEEN 14500 AND 14502
FOR XML PATH('');
然而,联机丛书确实说这是正确的行为。请参阅FOR XML子句的基本语法> https://msdn.microsoft.com/en-gb/library/ms190922.aspx>参数> PATH。
如果提供空字符串(FOR XML PATH('')),则不会生成包装元素。
答案 1 :(得分:1)