将xml列值包装到外部以进行xml路径查询

时间:2011-03-10 12:00:30

标签: sql-server xml sql-server-2005 tsql sql-server-2008

我想将xml从列包装到out for xml路径查询中 列名称作为元素。

declare @tab table (col xml)
insert @tab
select '<element/>'

select  'val' AS "@att" , col
from  @tab
for xml path ('ROOT')

这给出了

<ROOT att="val">
  <col>
    <element />
  </col>
</ROOT>

但我想要

<ROOT att="val">
    <element />
</ROOT>

非常感谢所有帮助。

2 个答案:

答案 0 :(得分:2)

select
  'val' AS "@att",
  (select col)
from  @tab
for xml path ('ROOT')

答案 1 :(得分:1)

一种更清洁的方法。

SELECT
    'val' AS [@att], 
    [col] AS [*]
FROM
    @tab
FOR XML PATH ('ROOT');