此声明如下:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
这将返回一个 XML 字符串中的所有记录。我希望每条记录都有自己的 XML 字符串。这有意义吗?可能吗。这样做有意义吗?
我正在使用 Microsoft SQL Server 2008
此声明如下:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
这将返回一个 XML 字符串中的所有记录。我希望每条记录都有自己的 XML 字符串。这有意义吗?可能吗。这样做有意义吗?
我正在使用 Microsoft SQL Server 2008
如果我理解正确,您希望每一行生成一个单独的 XML 文档(没有“XML 字符串”之类的东西)。您需要通过 FOR XML运行每一行。例如,从表中取出每一行并使用CROSS APPLY
运算符来投影一行FOR XML TYPE
。使用行表值构造函数进行连接。例如。使用 master..spt_values:
select t.*
from master..spt_values s
cross apply (
select s.*
from (values (1) ) as t(c)
for xml path('Boookin'), root('Doc'), type) as t(x)
每行将返回一个 XML 文档,其结构如下:
<Doc>
<Boookin>
<name>rpc</name>
<number>1</number>
<type>A </type>
<status>0</status>
</Boookin>
</Doc>
用您选择的表替换 master..spt_values。