2012-01-24 23 views
3

SQL Server 2008からデータベースからテーブルをエクスポートし、そのテーブルをローカルデータベースに復元する必要があります。問題は、列の1つにXMLデータが含まれていることです。これを行う最も効果的な方法は何でしょうか?SQL Server 2008でXMLデータ列を含むテーブルをエクスポートする

+0

XML列がない場合はどうすればよいですか? –

+0

通常、私はフラットファイルにエクスポートします。しかし、それはXML列でエラーを引き起こします – user1111955

答えて

3

「データのエクスポート」ウィザードを使用することもできます。それはあなたのシナリオを考えればうまくいくはずです。

0

フラットファイルの代わりにXMLを使用できます。

サンプル構造とデータ:

create table XMLTable 
(
    ID int, 
    XMLData xml 
) 

insert into XMLTable values 
(1, '<root>item1</root>'), 
(2, '<root>item2</root>') 

クエリデータfor xml autoを使用して:

select * 
from XMLTable 
for xml auto, elements 

結果:

<XMLTable> 
    <ID>1</ID> 
    <XMLData> 
    <root>item1</root> 
    </XMLData> 
</XMLTable> 
<XMLTable> 
    <ID>2</ID> 
    <XMLData> 
    <root>item2</root> 
    </XMLData> 
</XMLTable> 

ロードターゲットDB内のXMLデータ型の変数にXML XQueryを使用してデータを挿入します。通常の列には.value()を、XML列には.query()を使用してください。

declare @XML xml 

set @XML = 
'<XMLTable> 
    <ID>1</ID> 
    <XMLData> 
    <root>item1</root> 
    </XMLData> 
</XMLTable> 
<XMLTable> 
    <ID>2</ID> 
    <XMLData> 
    <root>item2</root> 
    </XMLData> 
</XMLTable>' 

insert into XMLTable(ID, XMLData) 
select T.N.value('ID[1]', 'int'), 
     T.N.query('XMLData/*') 
from @XML.nodes('/XMLTable') as T(N) 
関連する問題