Berikut adalah opsi yang memungkinkan yang menunjukkan cara memuat beberapa file XML yang memiliki definisi yang sama ke dalam tabel SQL Server. Contoh menggunakan SQL Server 2008 R2 dan SSIS 2008 R2 . Contoh yang ditampilkan di sini memuat tiga file XML ke dalam tabel SQL menggunakan Data Flow Task SSIS dengan bantuan XML Source komponen.
Proses langkah demi langkah:
- Buat tabel bernama
dbo.Itemsmenggunakan skrip yang diberikan di bawah Skrip SQL bagian. - Buat file XSD bernama
Items.xsddi jalur folder C:\temp\xsd menggunakan konten yang disediakan di bawah File XSD bagian. - Buat tiga file XML yaitu
Items_1.xml,Items_2.xmldanItems_3.xmldi jalur folder C:\temp\xml menggunakan konten yang disediakan di bawah File XML bagian. - Pada package, buat 3 variabel yaitu
FileExtension,FilePathdanFolderPathseperti yang ditunjukkan pada tangkapan layar #1 . - Pada Manajer Koneksi paket, buat Koneksi DB OLE bernama
SQLServeruntuk terhubung ke SQL Server Instance seperti yang ditunjukkan pada tangkapan layar #2 . - Pada
Control Flowtab, tempatkanForeach loop containerdanData Flow Taskdalam wadah loop Foreach seperti yang ditunjukkan pada tangkapan layar #3 . - Konfigurasikan
Foreach Loop containerseperti yang ditunjukkan pada tangkapan layar #4 dan #5 . - Klik dua kali pada
Data Flow Taskuntuk menavigasi keData Flowtab. TempatkanXML Sourcekomponen danOLE DB Destinationseperti yang ditunjukkan pada tangkapan layar #6 . - Konfigurasikan
XML Sourceseperti yang ditunjukkan pada tangkapan layar #7 dan #8 . Jalur file XML akan diambil dari variabel FilePath . Variabel ini akan diisi olehForeach Loop container. Catatan: Dalam versi Visual Studio yang lebih baru, Sumber XML akan error karena properti ValidateExternalMetadata. Untuk memperbaikinya, Klik sekali "XML Source" lalu Properties dan setel ValidateExternalMetadata ke False . - Konfigurasikan
OLE DB Destinationseperti yang ditunjukkan pada tangkapan layar #9 dan #10 . - Tangkapan layar #11 dan #12 tampilkan eksekusi paket.
- Tangkapan layar #13 menampilkan data tabel sebelum eksekusi paket. Tangkapan layar #14 menampilkan data tabel setelah eksekusi paket. Data dalam tabel
dbo.Itemssekarang berisi data yang ada dalam tiga file XML.
Semoga membantu.
Skrip 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
Berkas XSD
<xsd:schema xmlns:schema="ItemsXSDSchema" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes" targetNamespace="ItemsXSDSchema" elementFormDefault="qualified">
<xsd:import namespace="https://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="https://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>
File 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>
Item_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>
Tangkapan Layar #1:

Tangkapan Layar #2:

Tangkapan Layar #3:

Tangkapan layar #4:

Tangkapan layar #5:

Tangkapan layar #6:

Tangkapan layar #7:

Tangkapan layar #8:

Tangkapan layar #9:

Tangkapan layar #10:

Tangkapan layar #11:

Tangkapan layar #12:

Tangkapan Layar #13:

Tangkapan layar #14:
