SQL Server 2008:如何使用SQL从Query中输出XML?

SQL Server 2008:如何使用SQL从Query中输出XML?

问题描述:

我想声明一个变量'XMLOutput'并让它以XML格式生成一个表格的内容。如果你能提供一个非常简单的例子,我可以解决它,我会很感激。我尝试使用xmlelement(),但无法使其正常工作。SQL Server 2008:如何使用SQL从Query中输出XML?

+0

FOR XML AUTO,元素将将数据放入正确的XML格式,我 – will 2010-11-15 20:27:37

SQL Server提供了基于表结构通过FOR XML clause生成XML的功能。它的选项有:

  • RAW
  • AUTO
  • PATH

有每个在链接的例子。

+0

只是出于好奇,你知道一个简单的方法来做相反的事吗?我需要导入一个大的XML文件(实际上是一个SOAP文件),并且目前使用一个臃肿的SSIS结构... – thomaspaulb 2010-11-15 20:48:34

+1

@littlegreen:这就是所谓的“粉碎” - [这里是关于SQL Server 2005的文章](http: //articles.techrepublic.com.com/5100-10878_11-6140404.html) – 2010-11-15 20:50:58

尝试使用

FOR XML RAW 

在您的查询的末尾。这将以XML形式返回结果。这是否做你想要的?如果不是,我认为你可能需要进一步阐述你的问题。你也可以看看the documentation, to see what options you have with FOR XML

+0

选择 \t XMLELEMENT(LOC, '禄',g.Loc) 从 \t网站地图SM 为XML RAW – will 2010-11-15 20:15:43

+0

我的语法有错 – will 2010-11-15 20:16:00

+0

选择前5 \t优先 从 \t ghhsitemap摹 为XML RAW 这个刺uces xml但格式错误(,我只需要 .9 will 2010-11-15 20:23:45

create xml schema collection cricketschemacollection 
AS N'<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLschema"> 
<xsd:element name="MatchDetails"> 
<xsd:complexType> 
<xsd::complexContent> 
<xsd:restiriction base="xsd:anyType"> 
<xsd:sequences> 
<xsd:element name="Team" minOccurs="0" maxOccurs="unbounded"> 
<xsd:complexType> 
<xsd::complexContent> 
<xsd:restiriction base="xsd:anyType"> 
<xsd:sequences/> 
<xsd:attribute name="country"type="xsd:string"/> 
<xsd:attribute name="score"type="xsd:string"/> 
</xsd:restiriction> 
</xsd::complexContent> 
</xsd:complexType> 
</xsd:element> 
</xsd:sequences> 
</xsd:restiriction> 
</xsd::complexContent> 
</xsd:complexType> 
</xsd:element> 
</xsd:schema>'