SQL“for XML”和内置函数,如“comment()”

时间:2013-12-17 16:29:19

标签: sql-server xml

我正在编写一个返回XML的SQL select语句。我想发表一些评论,发现一篇帖子询问如何做到这一点。答案似乎是“comment()”函数/关键字。所以,我的代码看起来大致如下:

select  ' extracted on tuesday ' as 'comment()',
        (select top 5 id from MyTable for xml path(''),type)
for xml path('stuff')

...返回XML如下:

<stuff>
  <!-- extracted on tuesday -->
  <id>0DAD4B42-CED6-4A68-AB7D-0003E4C127CC</id>
  <id>24BD0E5F-8B76-43FF-AEEA-0008AA911ADD</id>
  <id>AAFF5BB0-BFFB-4584-BACC-0009684A1593</id>
  <id>0581AF24-8C30-408C-9A48-000A488133AC</id>
  <id>01E2306D-296A-4FF7-9263-000EEFF42230</id>
</stuff>

在试图了解更多关于“comment()”的过程中,我发现了“data()”。

select top 5 id as 'data()' from MyTable for xml path('')

不幸的是,名称使搜索这些功能的信息非常困难。

有人可以向我提供有关其使用情况的文档以及任何其他类似的功能吗?

谢谢,

修改

另一个似乎是“处理指令(blah)”。

示例:

select  'type="text/css" href="style.css"' as 'processing-instruction(xml-stylesheet)',
        (select top 5 id from MyTable for xml path(''),type)
for xml path('stuff')

结果:

<stuff>
  <?xml-stylesheet type="text/css" href="style.css"?>
  <id>0DAD4B42-CED6-4A68-AB7D-0003E4C127CC</id>
  <id>24BD0E5F-8B76-43FF-AEEA-0008AA911ADD</id>
  <id>AAFF5BB0-BFFB-4584-BACC-0009684A1593</id>
  <id>0581AF24-8C30-408C-9A48-000A488133AC</id>
  <id>01E2306D-296A-4FF7-9263-000EEFF42230</id>
</stuff>

1 个答案:

答案 0 :(得分:0)

以下是BOL信息的链接:Columns with the Name of an XPath Node Test。 这详细介绍了您感兴趣的功能。(找到它确实很痛苦)

您还可以找到快速功能示例here