Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

SO WIRD'S GEMACHT: Importieren von XML in SQL Server mit der XML Massenkopier-Komponente

Dieser Artikel wurde zuvor veröffentlicht unter D316005
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
316005 HOW TO: Import XML into SQL Server with the XML Bulk Load Component
Zusammenfassung
In XML dargestellte Daten können mit der XML Massenkopier-Komponente in eine SQL Server 2000-Datenbank geladen werden. Dieser Artikel beschreibt die Schritte, nach denen Sie vorgehen müssen, um XML-Daten in eine Tabelle zu laden, die bereits in der Datenbank vorhanden ist.

Zurück zum Anfang

Voraussetzungen

Um nach den Schritten in diesem Artikel vorzugehen, benötigen Sie folgendes:
  • Web Release 1 von XML für SQL Server 2000 (SQLXML), oder höher.
Erforderliches Vorwissen:
  • Kenntnisse in XML.
Zurück zum Anfang

Erstellen einer Tabelle zum Empfangen der Daten

Gehen Sie folgendermaßen vor, um eine Tabelle zu erstellen, mit der Sie die Daten empfangen können, die von der XML Massenkopier-Komponente verarbeitet werden.
  1. Erstellen Sie in SQL Server eine Datenbank mit dem Namen MyDatabase.
  2. Öffnen Sie SQL Query Analyzer und ändern Sie die Datenbank in MyDatabase.
  3. Erstellen Sie in MyDatabase eine Tabelle Customer, indem Sie die folgende SQL-Anweisung in Query Analyzer ausführen:
    USE MyDatabaseCREATE TABLE Customer (   CustomerId INT PRIMARY KEY,   CompanyName NVARCHAR(20),   City NVARCHAR(20))
Zurück zum Anfang

Erstellen der XML-Datenquellendatei

Dies ist der Beispielcode für die Datenquelle. Fügen Sie diese XML in den Editor ein und speichern Sie die Datei als C:\Customers.xml.
<ROOT>  <Customers>    <CustomerId>1111</CustomerId>    <CompanyName>Sean Chai</CompanyName>    <City>NY</City>  </Customers>  <Customers>    <CustomerId>1112</CustomerId>    <CompanyName>Tom Johnston</CompanyName>    <City>LA</City>  </Customers>  <Customers>    <CustomerId>1113</CustomerId>    <CompanyName>Institute of Art</CompanyName>  </Customers></ROOT>
Zurück zum Anfang

Erstellen der Zuordnungsschema-Datei

Die nächste Datei dient dazu, das Format der Datenquellen-XML dem Format der Tabelle Customer in der Datenbank zuzuordnen. Fügen Sie diese XML in den Editor ein und speichern Sie die Datei als C:\Customermapping.xml.
<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"         xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"          xmlns:sql="urn:schemas-microsoft-com:xml-sql" >    <ElementType name="CustomerId" dt:type="int" />   <ElementType name="CompanyName" dt:type="string" />   <ElementType name="City" dt:type="string" />   <ElementType name="ROOT" sql:is-constant="1">      <element type="Customers" />   </ElementType>   <ElementType name="Customers"  sql:relation="Customer">      <element type="CustomerId"  sql:field="CustomerId" />      <element type="CompanyName" sql:field="CompanyName" />      <element type="City"        sql:field="City" />   </ElementType></Schema>
Zurück zum Anfang

Erstellen eines VBScript-Programms zum Ausführen der XML Massenkopier-Komponente

Dieses Skript wird von der XML Massenkopier-Komponente verwendet, um die drei im Abschnitt "Erstellen der XML-Datenquellendatei" erstellten Datensätze in die Tabelle einzufügen, die Sie im Abschnitt "Erstellen einer Tabelle zum Empfangen der Daten" unter Verwendung des unter "Erstellen der Zuordnungsschema-Datei" beschriebenen Zuordnungsschemas erstellt haben. Fügen Sie diesen VBScript-Code in den Editor ein und speichern Sie die Datei als C:\Insertcustomers.vbs.
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MyServer;database=MyDatabase;uid=MyAccount;pwd=MyPassword"objBL.ErrorLogFile = "c:\error.log"objBL.Execute "c:\customermapping.xml", "c:\customers.xml"Set objBL = Nothing
Ändern Sie die ConnectionString-Informationen in der zweiten Zeile des Codes so, dass das Skript mit Ihrer SQL Server-Installation funktioniert. Wenn Sie die Zeile 2 nicht entsprechend ändern, wird nach der Ausführung des Skripts die folgende Fehlermeldung angezeigt:
Fehler beim Herstellen der Verbindung mit der Datenquelle
Zurück zum Anfang

Ausführen des VBScript-Programms

Führen Sie das VBScript-Programm C:\Insertcustomers.vbs aus, um die drei Kundendatensätze in die Tabelle Customer einzufügen.

Zurück zum Anfang

Funktionsprüfung

Wechseln Sie in SQL Query Analyzer zur Datenbank MyDatabase und führen Sie anschließend diese Abfrage aus:
SELECT * FROM Customer
Beachten Sie, dass die drei unter "Erstellen der XML-Datenquellendatei" erstellten Datensätze nun in der Tabelle Customer enthalten sind.

Zurück zum Anfang

Alternatives Verfahren

Die XML Massenkopier-Komponente verfügt über folgende Funktionen:
  • Zuordnen eines XML-Dokuments zu mehreren Tabellen unter Verwendung einer in der XML-Schemadatei angegebenen Beziehung.
  • Erzeugen von Tabellenschemas vor dem Massenkopieren.
  • Massenkopieren von einem Datenstrom.
  • Massenkopieren in Überlaufspalten.
Zurück zum Anfang
Informationsquellen
SQLXML-Onlinedokumentation; Thema: "Massenkopieren von XML-Daten"

Zurück zum Anfang
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 316005 – Letzte Überarbeitung: 09/10/2003 10:59:39 – Revision: 2.3

Microsoft SQL Server 2000 Standard Edition

  • kbhowto kbhowtomaster KB316005
Feedback
dy>/html> none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">p;did=1&t=">