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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 316005 - Produkte anzeigen, auf die sich dieser Artikel bezieht
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
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.
Alles erweitern | Alles schließen

Auf dieser Seite

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.

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.

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 MyDatabase
    CREATE TABLE Customer (
       CustomerId INT PRIMARY KEY,
       CompanyName NVARCHAR(20),
       City NVARCHAR(20))

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>

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>

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

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.

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.

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.

Informationsquellen

SQLXML-Onlinedokumentation; Thema: "Massenkopieren von XML-Daten"

Eigenschaften

Artikel-ID: 316005 - Geändert am: Mittwoch, 10. September 2003 - Version: 2.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbhowto kbhowtomaster KB316005
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com