2

SQL サーバー データベースにテーブルがあり、このクエリを使用してテーブルから XML を生成しています。

SELECT OrderNumber, CustomerID, ITEM
FROM OrderHeader
FOR XML RAW('Order'), ELEMENTS, ROOT('Orders')

次のような XML を取得します。

<Orders>
<Order>
    <OrderNumber>SO101</OrderNumber>
    <CustomerID>1</CustomerID>
            <Item>item 1</Item>
</Order>
<Order>
    <OrderNumber>SO102</OrderNumber>
    <CustomerID>1</CustomerID>
            <Item>item 2</Item>
</Order>
</Orders>

ただし、以下の形式で XML を生成する必要があります。

<Orders>
<Order OrderNumber= 'SO101'>        
    <CustomerID>1</CustomerID>
            <Item>item 1</Item>
</Order>
  <Order OrderNumber= 'SO102'>      
    <CustomerID>1</CustomerID>
            <Item>item 2</Item>
</Order>
</Orders>

つまり、注文番号列を注文ノードの属性として表示する必要があります。

どうすればこれを達成できますか?

4

2 に答える 2

2

XML RAW ではオプションが制限されることがわかると思います。

次のような XML PATH を使用してみてください。

SELECT OrderNumber AS @Id, CustomerID, ITEM
FROM OrderHeader
FOR XML PATH('Order'), ELEMENTS, ROOT('Orders')

それがうまくいくかどうかを確認したいのですが、現在も私の XML を改善しようとしています。

于 2012-07-06T11:12:41.800 に答える
1

これを試して、

SELECT 
    OrderNumber AS "Order/@OrderNumber", 
    CustomerID, 
    ITEM
FROM 
    OrderHeader
FOR XML PATH, ELEMENTS, ROOT('Orders')

詳細について

于 2012-07-06T11:12:33.487 に答える