0

SQL Server データベースからデータを削除する前に、このデータを後の段階で復元する場合に備えて、XML ファイルとしてエクスポートおよび保存します。現在、XML ファイルからデータベースにデータを戻そうとしていますが、これを行う最善の方法が見つかりません。SQL サーバーのインポート/エクスポート ウィザードは、XML をサポートしていないようです。XML Bulk Load コンポーネントを見てきましたが、これは私の問題ではうまくいかないようです。誰か提案はありますか?

XML は以下のようになり、各行の挿入が必要になります。

<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<prod_id>4235823</prod_id>
<productImageURL>image1.jpg</productImageURL>
<entryDate>Aug 30 2011 01:47:08:317PM</entryDate>
<category>859191</category>
<productDescription>product description 1</productDescription>
<productName>product name 1</productName>
<Price>9.99</Price>
</product>
<product>
<prod_id>8989595</prod_id>
<productImageURL>image2.jpg</productImageURL>
<entryDate>Aug 30 2011 01:47:08:317PM</entryDate>
<category>859191</category>
<productDescription>product description 2</productDescription>
<productName>product name 2</productName>
<Price>2.99</Price>
</product>
<product>
<prod_id>4575454</prod_id>
<productImageURL>image3.jpg</productImageURL>
<entryDate>Aug 30 2011 01:47:08:317PM</entryDate>
<category>859191</category>
<productDescription>product description 3</productDescription>
<productName>product name 3</productName>
<Price>5.99</Price>
</product>
</products>
4

2 に答える 2

0
SELECT
    p.value('prod_id[1]','INT'),
    p.value('productImageURL[1]','VARCHAR(100)'),
    p.value('category[1]','VARCHAR(100)'),
    p.value('productDescription[1]','VARCHAR(1000)'),
    p.value('productName[1]','VARCHAR(100)'),
    p.value('Price[1]','money'),            
FROM @xmlfile.nodes('/Products/Product') as Product(p)
于 2012-04-30T14:53:24.623 に答える
0

少し調査した結果、次のものが必要であることがわかりました。

DECLARE @xml xml
SET @xml = N'<Products>
<Product>
<id>4</id>
<name>Amy</name>
<age>25</age>
</Product>
<Product>
<id>7</id>
<name>Vicky</name>
<age>40</age>
</Product>
</Products>'


INSERT INTO dbo.leanne_test (id, name, age)


SELECT
 doc.col.value('id[1]', 'nvarchar(10)') id
,doc.col.value('name[1]', 'varchar(100)') name 
,doc.col.value('age[1]', 'nvarchar(10)') age 
FROM @xml.nodes('/Products/Product') doc(col)
于 2012-05-01T13:07:54.590 に答える