0

そのため、SQL Server 2000 DBからデータを取得し、FORXMLAUTOを使用してXMLに変換しています。

返されるXMLは次のようになります。

<Order OrderNumber="2000004" DeliveryPickupCharge="5.9900" SalesTaxTotal="0.0000"      SubTotal="0.0000" Total="5.9900">
  <Customer FirstName="Anthony" LastName="Caporale">
  <Product ProductName="Paper Towels">
  <OrderItem ItemQuantity="1" ItemPrice="8.5900" Total="8.5900" />
</Product>
<Product ProductName="Bathroom Tissue - Giant Roll">
  <OrderItem ItemQuantity="2" ItemPrice="7.1500" Total="14.3000" />
</Product>
<Product ProductName="Napkins - 1-Ply">
  <OrderItem ItemQuantity="1" ItemPrice="3.4900" Total="3.4900" />
</Product>
<Product ProductName="Facial Tissues - 2-Ply - White">
  <OrderItem ItemQuantity="2" ItemPrice="2.0500" Total="4.1000" />
</Product>
<Product ProductName="Anti-Perspirant &amp; Deodorant - Ultra DryCool Rush">
  <OrderItem ItemQuantity="2" ItemPrice="3.5900" Total="7.1800" />
</Product>
<Product ProductName="Flushable Wipes - Fresh Mates Cloths - Refill">
  <OrderItem ItemQuantity="2" ItemPrice="2.9500" Total="5.9000" />
</Product>

まず、2000年にはRoot('whatever')がないので、T-SQLにルートノードを追加する方法はありますか?また、すべての商品を商品タグでラップする方法はありますか?返されるXMLがなぜこんなに悪い形になっているのかよくわかりません。SQL 2005を使用していれば、少し修正できました。残念ながら、現時点では2000でスタックしています。

ありがとう

4

2 に答える 2

0

FOR XML EXPLICITモードを使用して、XMLを自由に操作できます。AUTO(または2k5 PATH)よりもはるかに複雑だと思いますが、うまくいくとうまくいきます。

于 2009-08-14T18:38:45.930 に答える
0

2005年にネストされたselectを使用すると、複数の結果を1つのコアタグ(Productsの複数のProduct)に埋め込むことができ、enstedseelectもXMLAUTOに対して宣言されます。

この手法を使用して、1つの大きなネストされた選択を使用して、すべてをルートタグでラップすることもできます。

于 2009-12-22T12:04:57.117 に答える