次の XML 変数があります。
DECLARE @XML1 xml
SET @XML1 = '
<updates>
<a RowID="1" StatusTypeID="800" Name="Name800" />
<a RowID="2" StatusTypeID="700" Name="Name700" />
<a RowID="3" StatusTypeID="500" Name="Name500" />
</updates>'
属性名と値を抽出する T-SQL コードがあります。
SELECT CAST(Attribute.Name.query('local-name(.)') AS varchar(100)) AS Attribute,
Attribute.Name.value('.', 'varchar(100)') AS Value
FROM @XML1.nodes('//@*') Attribute(Name)
これにより、次が生成されます。
Attribute Value
RowID 1
StatusTypeID 800
Name Name800
RowID 2
StatusTypeID 700
Name Name700
RowID 3
StatusTypeID 500
Name Name500
各ノードに関連付けられた RowID が別の列として追加されるように出力を調整するにはどうすればよいですか。つまり、希望する結果は次のとおりです。
Attribute Value RowID
RowID 1 1
StatusTypeID 800 1
Name Name800 1
RowID 2 2
StatusTypeID 700 2
Name Name700 2
RowID 3 3
StatusTypeID 500 3
Name Name500 3
誰かが助けてくれることを願っています - ありがとう。