Hier ist eine mögliche Option, die zeigt, wie mehrere XML-Dateien mit derselben Definition in eine SQL Server-Tabelle geladen werden. Das Beispiel verwendet SQL Server 2008 R2 und SSIS 2008 R2 . Das hier gezeigte Beispiel lädt drei XML-Dateien mithilfe von SSIS Data Flow Task in eine SQL-Tabelle mit Hilfe von XML Source Komponente.
Schritt-für-Schritt-Prozess:
- Erstellen Sie eine Tabelle namens
dbo.Itemsmit dem unter SQL-Skripts angegebenen Skript Abschnitt. - Erstellen Sie eine XSD-Datei namens
Items.xsdim Ordnerpfad C:\temp\xsd unter Verwendung der unter XSD-Datei bereitgestellten Inhalte Abschnitt. - Erstellen Sie drei XML-Dateien, nämlich
Items_1.xml,Items_2.xmlundItems_3.xmlim Ordnerpfad C:\temp\xml unter Verwendung der unter XML-Dateien bereitgestellten Inhalte Abschnitt. - Erstellen Sie auf dem Paket 3 Variablen, nämlich
FileExtension,FilePathundFolderPathwie in Screenshot #1 gezeigt . - Erstellen Sie in den Verbindungs-Managern des Pakets eine OLE DB-Verbindung mit dem Namen
SQLServerum sich mit der SQL Server-Instanz zu verbinden, wie in Screenshot #2 gezeigt . - Auf dem
Control Flowplatzieren Sie einenForeach loop containerund eineData Flow Taskinnerhalb des Foreach-Schleifencontainers, wie in Screenshot #3 gezeigt . - Konfigurieren Sie den
Foreach Loop containerwie in Screenshots #4 gezeigt und #5 . - Doppelklicken Sie auf die
Data Flow Taskum zumData Flowzu navigieren Tab. Platzieren Sie eineXML SourceKomponente und einOLE DB Destinationwie in Screenshot #6 gezeigt . - Konfigurieren Sie die
XML Sourcewie in Screenshot #7 gezeigt und #8 . Der XML-Dateipfad wird aus der Variable FilePath abgerufen . Diese Variable wird vomForeach Loop containergefüllt . Hinweis: In späteren Versionen von Visual Studio wird XML Source wird Fehler aufgrund der ValidateExternalMetadata-Eigenschaft. Um dies zu beheben, klicken Sie einmal auf „XML-Quelle“, dann auf Eigenschaften und setzen Sie ValidateExternalMetadata auf False . - Konfigurieren Sie das
OLE DB Destinationwie in Screenshots #9 gezeigt und #10 . - Screenshots Nr. 11 und #12 Zeigt die Paketausführung an.
- Screenshot #13 zeigt die Tabellendaten vorher die Paketausführung. Screenshot Nr. 14 zeigt die Tabellendaten nach die Paketausführung. Die Daten in der Tabelle
dbo.Itemsenthält nun die vorhandenen Daten in drei XML-Dateien.
Hoffe das hilft.
SQL-Skripts:
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-Datei
<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>
XML-Dateien
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>
Screenshot 1:

Screenshot Nr. 2:

Screenshot 3:

Screenshot #4:

Screenshot Nr. 5:

Screenshot Nr. 6:

Screenshot #7:

Screenshot #8:

Screenshot Nr. 9:

Screenshot Nr. 10:

Screenshot Nr. 11:

Screenshot Nr. 12:

Screenshot Nr. 13:

Screenshot Nr. 14:
