2011-07-06 9 views
2

SQL ServerからXMLを生成しようとしていますが、属性ではなくnodevalueになるように選択しているフィールドが必要です。SQL ServerからNodeValuesでXMLを生成する

私の現在のSQLは次のようになります -

SELECT AccountNumberを口座からのXML AUTO、次いでようなXMLを生成

: - 私はそれをみたい

<Account AccountNumber="12345" /> 

-

<AccountNumber>12345</AccountNumber> 

誰かが私を正しい方向に向けることができますか?

答えて

2

最後に要素を追加します。

SELECT AccountNumber FROM Account FOR XML AUTO, ELEMENTS 
3

あなたはまた、SQL Server 2008およびそれ以降で利用可能なFOR XML PATH(...),ROOT(....)構文をチェックアウトする必要があります:MSDN docs

これは、指定

  • にあなたをできるようになります多数のXML要素のルートノード
  • XMLタグ名を指定
  • XMLは、あなたのケースでそう

を属性として、あなたは、例えば可能性がある特定のビットを指定します以下のようなものを作成:

SELECT 
    AccountNumber, AcctID AS '@AcctID', 
    AccountHolder 
FROM 
    dbo.Accounts 
FOR XML PATH('Account'), ROOT('AllAccounts') 

を、あなたの出力として、このようなものになるだろう:

<AllAccounts> 
    <Account AcctID="42"> 
     <AccountNumber>12345</AccountNumber> 
     <AccountHolder>John Doe</AccountHolder> 
    </Account> 
    <Account AcctID="4711"> 
     <AccountNumber>54321</AccountNumber> 
     <AccountHolder>Jane Willis-Doe</AccountHolder> 
    </Account> 
    ..... (possibly more <Account> elements) ...... 
</AllAccounts> 

FOR XML PATH方法では、あなたは非常に簡単に結果のXMLは次のように微調整しているはずですができますか。

関連する問題