此声明如下:
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。