2013-12-17 34 views
2

我正在編寫一個返回XML的SQL select語句。我想提出一些意見,並發現一個帖子要求如何做到這一點。答案似乎是「comment()」函數/關鍵字。所以,我的代碼看起來大致是這樣的:SQL「for XML」和內置函數,如「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> 

在嘗試的過程中找到更多關於「評論()」,我發現「data()」。

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

不幸的是,名稱使得搜索這些功能的信息非常困難。

有人能告訴我他們的使用文檔,以及任何其他類似的功能嗎?

謝謝,

編輯:

另一個似乎是 「處理指令(等等)」。

實施例:

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> 
+0

['數據()'在這裏加以簡述(HTTP:/ /technet.microsoft.com/en-us/library/bb510419.aspx)。您也可以找到[XPath 1.0 W3C推薦](http://www.w3.org/TR/xpath/),儘管'comment()'僅在通過時提及。 –

+0

(另外,我建議使用'[方括號]'來捕獲別名。在某些情況下,使用''單引號''已被棄用,並且確實使得它們看起來像字符串分隔符。) –

+0

謝謝Aaron。我認爲,在搜索「comment()」時,我發現TechNet文章 - 這是我找到「data()」的地方。 –

回答

0

這裏是鏈接到BOL信息:Columns with the Name of an XPath Node Test。 這個細節你感興趣的功能(它確實可以是一個痛苦找到)

您也可以找到快速功能例子here

+0

嗨,那第一鏈接看起來破壞了(對我來說),但第二個是非常有用的 - 但是與我列出的sqlservercentral是同一篇文章。不管怎麼說,還是要謝謝你。 TechNet示例位於此處: - http://technet.microsoft.com/en-us/library/bb522573.aspx –

+0

[固定鏈接](http://technet.microsoft.com/zh-cn/library/bb522573。 aspx)對不起。 – Matt