如何使用 XML 大量載入元件將 XML 匯入 SQL Server

文章翻譯 文章翻譯
文章編號: 316005
全部展開 | 全部摺疊

在此頁中

結論

以 XML 表示的資料可以使用「XML 大量載入」元件載入 SQL Server 2000 資料庫。本文將逐步概述,如何載入 XML 資料到已存於資料庫的表格中。

需求

如果要使用本文中的步驟,您需要:
  • 適用 SQL Server 2000 (SQLXML) 或更新版本的 Web Release 1 XML。
事先必須具備的知識:
  • XML 知識。

建立表格以接收資料

使用下列步驟建立表格,以接收「XML 大量載入」元件所處理的資料。
  1. 在 SQL Server 建立名為 MyDatabase 的資料庫。
  2. 開啟 SQL Query Analyzer,然後將資料庫變更為 MyDatabase
  3. 在 Query Analyzer 中執行下列 SQL 陳述式,以在 MyDatabase 中建立 [客戶] 表格:
    USE MyDatabase
    CREATE TABLE Customer (
       CustomerId INT PRIMARY KEY,
       CompanyName NVARCHAR(20),
       City NVARCHAR(20))
    					

建立 XML 資料來源檔案

這是範例資料原始碼。將此 XML 貼到「記事本」,然後將檔案儲存為 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>
				

建立對應的架構檔案

這個檔案可讓您用來對應資料來源 XML 的格式和資料庫中 [客戶] 表格格式。將此 XML 貼到「記事本」,然後將檔案儲存為 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>
				

建立 VBScript 程式以執行 XML 大量載入元件

這是一個使用 XML 「大量載入」元件的指令碼,透過使用「建立對應的架構檔案」標題中討論的對應架構,將您在「建立 XML 資料來源檔案」標題中建立的三個記錄插入您在「建立表格以接收資料」標題中建立的表格。將此 VBScript 程式碼貼到「記事本」,然後將檔案儲存為 C:\Insertcustomers.vbs。
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MySQLServer;database=MyDatabase;uid=MyAccount;pwd=MyPassword"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\customermapping.xml", "c:\customers.xml"
Set objBL = Nothing
				
更正程式碼第二行中的 ConnectionString 認證,讓指令碼可以和 SQL Server 安裝一起運作。如果您不更正第 2 行,則會在您執行指令碼之後出現下列錯誤訊息:
連線至資料來源時發生錯誤

執行 VBScript 程式

執行 VBScript 程式 C:\Insertcustomers.vbs 以將三個客戶記錄插入 [客戶] 表格。

確認是否能夠運作

在 SQL Query Analyzer 中,切換至 MyDatabase 資料庫,然後執行此查詢:
SELECT * FROM Customer
				
請注意,建立於「建立 XML 資料來源檔案」標題中的三個記錄現在會在 [客戶] 表格中。

其他技術

「XML 大量載入」元件可以:
  • 使用 XML 架構檔案中指定的關係,將 XML 文件對應至多個表格。
  • 在大量載入前產生表格架構。
  • 從資料流大量載入。
  • 溢位欄位中的大量載入。



參考

線上 SQLXML 書籍;主題:Performing Bulk Load of XML Data

屬性

文章編號: 316005 - 上次校閱: 2011年2月16日 - 版次: 3.6
關鍵字:?
kbsqldeveloper kbhowtomaster KB316005
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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