Sql server TSQL 2008 Unpivot XML属性

Sql server TSQL 2008 Unpivot XML属性,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我正在寻找一种在TSQL中取消激活xml节点属性的方法,其中节点名称/属性名称未知 DECLARE @Raw XML = '<contact id=1 firstname="liz" lastname="simple" email="liz@sample.com"/>' 质疑 我在SSMS 2012的第2个n中得到一个“警告”,在“n.n.value”中,“n”不是有效的函数、属性或字段“查询正确运行,并且似乎使用“n.value”正确运行”。谢谢 id 1 f

我正在寻找一种在TSQL中取消激活xml节点属性的方法,其中节点名称/属性名称未知

DECLARE @Raw XML = '<contact id=1 firstname="liz" lastname="simple" email="liz@sample.com"/>'
质疑

我在SSMS 2012的第2个n中得到一个“警告”,在“n.n.value”中,“n”不是有效的函数、属性或字段“查询正确运行,并且似乎使用“n.value”正确运行”。谢谢
id           1
firstname    liz
lastname     simple
email        liz@sample.com
DECLARE @Raw XML = '<contact id="1"
                     firstname="liz"
                     lastname="simple"
                     email="liz@sample.com"/>'
select n.n.value('local-name(.)', 'nvarchar(max)') name,
       n.n.value('.', 'nvarchar(max)') value
  from @raw.nodes('/*/@*') n(n)
name        value
----------- ----------------
id          1
firstname   liz
lastname    simple
email       liz@sample.com