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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 316005 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL316005
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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 nazwie MyDatabase.
  2. Otwórz program SQL Query Analyzer, a następnie zmień aktywną bazę danych na MyDatabase.
  3. W bazie danych MyDatabase utwórz tabelę Customer, wykonując następującą instrukcję SQL w programie Query Analyzer:
    USE MyDatabase
    CREATE 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 tabeli Customer w 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świadczenia ConnectionString w 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 tabeli Customer.

Testowanie kodu

W programie SQL Query Analyzer przełącz do bazy danych MyDatabase, 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

Numer ID artykułu: 316005 - Ostatnia weryfikacja: 15 maja 2011 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • 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
Słowa kluczowe: 
kbsqlmanagementtools kbhowto kbhowtomaster KB316005

Przekaż opinię

 

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