Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

怎样才能将XML文件导入SQL Server

Posted on 2008-08-22 12:58  analyzer  阅读(3101)  评论(0)    收藏  举报
概要
XML 中表示的数据可以通过使用 XML 大容量装载组件加载到 Microsoft SQL Server 2000 数据库。 本文概述了您需要按照将 XML 数据加载到数据库中已存在一个表格的步骤。

注意 如果您使用 Microsoft SQL Server 2005,请参见 SQL Server 2005 联机丛书中的"XML 大容量加载示例"主题。


回到顶端

要求
若要使用该步骤需要此文章中: • 为 SQL Server 2000 (SQLXML),或更高版本 Web Release 1 的 XML。
所需预备知识: • XML 的知识。


回到顶端

创建表以接收数据
使用以下步骤创建一个表来接收该 XML 大容量装载组件处理的数据。 1. 创建一个名为 MyDatabase 在 SQL Server 中的数据库。
2. 打开 SQL 查询分析器,然后将该数据库更改为 MyDatabase 。
3. 通过在查询分析器中运行下列 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 查询分析器,切换到 MyDatabase 数据库,然后再运行此查询: Select * FROM Customer
                
注意在"创建 XML 数据源文件"标题中创建的三个记录现在位于 客户 表。


回到顶端

其他技术
该 XML 大容量装载组件是能够: • 通过使用 XML 架构文件中指定关系的 XML 文档映射到倍数表。
• 正在生成大容量加载之前,表架构。
• 大容量加载从流中。
• 大容量溢出列中的加载。