同じ定義を持つ複数の XML ファイルを SQL Server テーブルにロードする方法を示すオプションを次に示します。この例では、SQL Server 2008 R2
を使用しています および SSIS 2008 R2
.ここに示す例では、SSIS Data Flow Task
を使用して 3 つの XML ファイルを SQL テーブルにロードします。 XML Source
の助けを借りて 成分。
段階的なプロセス:
<オール>dbo.Items
という名前のテーブルを作成します SQL スクリプトの下にあるスクリプトを使用する Items.xsd
という名前の XSD ファイルを作成します。 フォルダー パス C:\temp\xsd XSD ファイルで提供されるコンテンツを使用する Items_1.xml
という 3 つの XML ファイルを作成します。 、 Items_2.xml
および Items_3.xml
フォルダー パス C:\temp\xml XML ファイルで提供されるコンテンツを使用する FileExtension
という 3 つの変数を作成します。 、 FilePath
および FolderPath
スクリーンショット #1 に示すように .SQLServer
という名前の OLE DB 接続を作成します。 スクリーンショット #2 に示すように、SQL Server インスタンスに接続します。 .Control Flow
について タブで、Foreach loop container
を配置します。 および Data Flow Task
スクリーンショット #3 に示すように、Foreach ループ コンテナ内で .Foreach Loop container
を構成する スクリーンショット #4 に示すように そして #5 .Data Flow Task
をダブルクリックします。 Data Flow
に移動します タブ。 XML Source
を配置する コンポーネントと OLE DB Destination
スクリーンショット #6 に示すように .XML Source
を構成する スクリーンショット #7 に示すように そして #8 . XML ファイル パスは変数 FilePath から取得されます .この変数は、Foreach loop container
によって設定されます。 . 注: Visual Studio のそれ以降のバージョンでは、XML ソースはそうします。 ValidateExternalMetadata プロパティによるエラー。これを修正するには、[XML ソース]、[プロパティ] の順にクリックし、ValidateExternalMetadata を False に設定します。 .OLE DB Destination
を構成する スクリーンショット #9 に示すように そして #10 .dbo.Items
のデータ 現在、3 つの XML ファイルに存在するデータが含まれています。お役に立てば幸いです。
SQL スクリプト:
CREATE TABLE [dbo].[Items](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ItemNumber] [nvarchar](50) NOT NULL,
[ItemName] [nvarchar](60) NOT NULL,
[Price] [numeric](18, 2) NOT NULL,
CONSTRAINT [PK_Items] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
XSD ファイル
<xsd:schema xmlns:schema="ItemsXSDSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" targetNamespace="ItemsXSDSchema" elementFormDefault="qualified">
<xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Item">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="sqltypes:int" />
<xsd:element name="ItemNumber">
<xsd:simpleType>
<xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ItemName">
<xsd:simpleType>
<xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
<xsd:maxLength value="60" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Price">
<xsd:simpleType>
<xsd:restriction base="sqltypes:numeric">
<xsd:totalDigits value="18" />
<xsd:fractionDigits value="2" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
XML ファイル
Items_1.xml
<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">
<Item>
<Id>1</Id>
<ItemNumber>I2345343</ItemNumber>
<ItemName>Monitor</ItemName>
<Price>299.99</Price>
</Item>
</Items>
Items_2.xml
<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">
<Item>
<Id>1</Id>
<ItemNumber>J1231231</ItemNumber>
<ItemName>Mouse</ItemName>
<Price>29.99</Price>
</Item>
</Items>
Items_3.xml
<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">
<Item>
<Id>1</Id>
<ItemNumber>K0456212</ItemNumber>
<ItemName>Keyboard</ItemName>
<Price>49.99</Price>
</Item>
</Items>
スクリーンショット #1:
スクリーンショット #2:
スクリーンショット #3:
スクリーンショット #4:
スクリーンショット #5:
スクリーンショット #6:
スクリーンショット #7:
スクリーンショット #8:
スクリーンショット #9:
スクリーンショット #10:
スクリーンショット #11:
スクリーンショット #12:
スクリーンショット #13:
スクリーンショット #14: