2013-03-27 67 views
0

我有以下XML的SQL Server的XQuery返回元素名称

declare @xml xml = '<Values><a>AAA</a><b>BBB</b></Values>'; 
select @xml.query('for $k in /Values return concat(",@", "=''", $k, "''")') 

它返回

,@ = 'AAABBB'

但是我希望

,@ a ='AAA',@ b ='BBB'

如何编写xquery?

回答

2

我想出了自己。

declare @xml xml = '<Values><a>AAA</a><b>BBB</b></Values>'; 
select @xml.query('for $k in /Values/* 
    return concat(",@", fn:local-name($k), "=''", $k, "''")')