2

在 SQL Server 2008 R2 中,我有一个包含有效 XML 节点行(一列,xml 类型)的表,如下所示:

create table #t (x xml not null);
insert into #t
values ('<service><value1>stuff</value1><value2>more stuff</value2></service>')
, ('<service><value1>I am a different row</value1><value2>more stuff</value2></service>');

我想将这些选择到一个 XML blob 中:

<services>
  <service>. . .</service>
  <service>. . .</service>
</services>

我正在使用 FOR XML PATH 来尝试这个,但它将列标题“x”作为“服务”节点周围的节点嵌入。

select x
from #t
for XML PATH(''), ROOT('services')

这会产生:

<services>
  <x><service>. . .</service></x>
  <x><service>. . .</service></x>
</services>

我怎样才能摆脱“x”节点?

我尝试选择 x 作为“”并选择 x 作为“。” 但这些是保留字,查询错误。

4

1 回答 1

3

这个怎么样?

 select x.query('*')
 from   #t
 for xml path(''), root('services')
于 2013-04-22T20:24:48.840 回答