您目前已離線,請等候您的網際網路重新連線

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

結論
以 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 MyDatabaseCREATE 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 - 最後檢閱時間:02/16/2011 02:14:00 - 修訂: 3.6

  • kbsqldeveloper kbhowtomaster KB316005
意見反應
var Route = "76500"; var Ctrl = ""; document.write("