SELECT FOR XML,如何使用?
下面的这一语句:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
这将返回一个 XML 字符串中的所有记录。我希望每条记录都有自己的 XML 字符串。这有道理吗?是否可以。这样做有意义吗?
我正在使用 Microsoft SQL Server 2008
This statement below:
SELECT
....
FROM
....
WHERE
....
FOR XML PATH('Booking'), ROOT('doc')
This returns all the records in one XML string. I wish for each record to have its own XML string. Does this make sense? Is it possible. Does it make sense to do this?
I am using Microsoft SQL Server 2008
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我理解正确的话,您希望每一行生成一个单独的 XML 文档(不存在“XML 字符串”这样的东西)。您需要通过 FOR XML 运行每一行。例如,从表中获取每一行并使用
CROSS APPLY< /code>
运算符投影单行
FOR XML TYPE
。使用行表值构造函数进行连接。例如。使用 master..spt_values:将每行返回一个 XML 文档,其结构如下:
将 master..spt_values 替换为您选择的表。
If I understand correctly, you want each row to produce a separate XML document (there is no such thing as an 'XML string'). You need to run each row through the FOR XML. For example, take each row from the table and use the
CROSS APPLY
operator to project a single rowFOR XML TYPE
. Use a row table value constructor for the join. Eg. using master..spt_values:will return one XML document per row, with a structure like:
Substitute master..spt_values with your table of choice.