Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

JAK: Importowanie danych XML do programu SQL Server za pomocą składnika XML Bulk Load

Ten artykuł został opublikowany wcześniej pod numerem PL316005
Streszczenie
Dane, które są wyrażone w języku XML, można załadować do bazy danych programu SQL Server 2000 za pomocą składnika XML Bulk Load. W tym artykule opisano czynności, które trzeba wykonać, aby załadować dane XML do tabeli, która już istnieje w bazie danych.

Wymagania

Aby wykonać kroki opisane w tym artykule, potrzebne są:
  • Wydanie Web Release 1 (lub nowsze) języka XML dla programu SQL Server 2000 (SQLXML).
Wymagana wiedza:
  • Znajomość języka XML.

Tworzenie tabeli do odebrania danych

Wykonaj następujące kroki, aby utworzyć tabelę do odebrania danych, które przetwarza składnik XML Bulk Load.
  1. W programie SQL Server utwórz bazę danych o nazwieMyDatabase.
  2. Otwórz program SQL Query Analyzer, a następnie zmień aktywną bazę danych naMyDatabase.
  3. W bazie danych MyDatabaseutwórz tabelęCustomer, wykonując następującą instrukcję SQL w programie Query Analyzer:
    USE MyDatabaseCREATE TABLE Customer (   CustomerId INT PRIMARY KEY,   CompanyName NVARCHAR(20),   City NVARCHAR(20))

Tworzenie pliku źródła danych XML

Poniżej przedstawiono przykładowy kod źródła danych. Wklej ten kod XML do Notatnika, a następnie zapisz plik jako 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>

Tworzenie pliku mapowania schematu

Następny plik posłuży do zmapowania formatu źródła danych XML na format tabeliCustomerw bazie danych. Wklej ten kod XML do Notatnika, a następnie zapisz plik jako 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>

Tworzenie programu w języku VBScript do wykonania składnika XML Bulk Load

Poniżej przedstawiono skrypt, który używa składnika XML Bulk Load do wstawienia trzech rekordów utworzonych w sekcji „Tworzenie pliku źródła danych XML” do tabeli utworzonej w sekcji „Tworzenie tabeli do odebrania danych” za pomocą pliku mapowania schematu utworzonego w sekcji „Tworzenie pliku mapowania schematu”. Wklej ten kod VBScript do Notatnika, a następnie zapisz plik jako 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
Zmień odpowiednio poświadczeniaConnectionStringw drugim wierszu kodu, tak aby skrypt mógł działać z daną instalacją programu SQL Server. Jeśli nie zmienisz wiersza 2, po uruchomieniu skryptu pojawi się następujący komunikat o błędzie:
Error connecting to the data source

Uruchomienie programu w języku VBScript

Uruchom program w języku VBScript, C:\Insertcustomers.vbs, aby wstawić trzy rekordy do tabeliCustomer.

Testowanie kodu

W programie SQL Query Analyzer przełącz do bazy danychMyDatabase, a następnie uruchom poniższą kwerendę:
SELECT * FROM Customer
Zwróć uwagę, że trzy rekordy utworzone w sekcji „Tworzenie pliku źródła danych XML” znajdują się w tabeli Customer.

Inne techniki

Składnik XML Bulk Load może:
  • Mapować dokumenty XML do wielu tabel, używając relacji określonej w pliku schematu XML.
  • Generować schematy tabel przed zbiorczym ładowaniem danych.
  • Przeprowadzać zbiorcze ładowanie danych ze strumienia danych.
  • Przeprowadzać zbiorcze ładowanie danych w kolumnach nadmiarowych.



Materiały referencyjne

SQLXML Books Online; temat: „Performing Bulk Load of XML Data”

Właściwości

Identyfikator artykułu: 316005 — ostatni przegląd: 05/15/2011 08:40:00 — zmiana: 3.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlmanagementtools kbhowto kbhowtomaster KB316005
Opinia