2011-12-07 18 views
4

属性をルート要素レコードに追加する場合は、SQL側からこれを行うことはできますか?SQL Server 2005のxmlノードに属性を追加する方法

SELECT top 1 'text' as nodeA 
       from test as z 
FOR XML AUTO, ELEMENTS, root('record') 

私はこのようなXMLを生成したいと思います:これは

<Root> 
    <YourElement Attribute="someValue"> 
     <z> 
     <NodeA>text</NodeA> 
     </z> 
    </YourElement> 
</Root> 

読むようなものを与えるだろう

SELECT TOP 1 
    'someValue' AS '@Attribute', 
    'text' as 'z/NodeA' 
FROM dbo.Test 
WHERE.... 
FOR XML PATH('YourElement'), ROOT('Root') 

<Root attribute="value"> 
    <z> 
     <NodeA>text</NodeA> 
    </z> 
</Root> 
+0

テーブルの外観やXMLをどのように見せることができますか? –

+0

@mar_sこんにちはマーク、私は更新を追加しました –

+0

あなたの要件を満たすために私の応答を更新しました.... –

答えて

1

あなたの例では、要求されたものをやっていません。

要求:

<Root attribute="someValue"> 
    <YourElement> 
     <z> 
     <NodeA>text</NodeA> 
     </z> 
    </YourElement> 
</Root> 

あなたの答え:1を

スクラブ理由:私は似た何かをやって、それを保存する前にファイルをスクラブするPowerShellを使用してい

<Root> 
    <YourElement Attribute="someValue"> 
     <z> 
     <NodeA>text</NodeA> 
     </z> 
    </YourElement> 
</Root> 

https://connect.microsoft.com/SQLServer/feedback/details/265956/suppress-namespace-attributes-in-nested-select-for-xml-statements

スクラブの理由2:この

+1

*スクラブの理由2 *のリンクを忘れたようです。 – j0k

0
SELECT 
     'someValue' AS '@Attribute', 
     (SELECT TOP 1 
       'text' as 'z/NodeA' 
       FROM dbo.Test 
       WHERE.... 
       FOR XML PATH('YourElement') 
     ) 
FOR XML PATH('ROOT'); 

ROOT containg属性とリストを含むxmlを作成する必要があります。

関連する問題