你目前正处于脱机状态,正在等待 Internet 重新连接

如何将 XML 导入 SQL Server,与 XML 大容量装载的组件

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 316005
概要
用 XML 表示的数据可以使用 XML 批量加载组件加载到 Microsoft SQL Server 2000年数据库。本文概述的步骤,您需要按照 XML 数据加载到数据库中已存在的表。

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

back to the top

要求

在本文中,您需要使用的步骤:
  • 对于 SQL Server 2000年 (SQLXML),或的 web 版本 1 的 XML。
必需的预备知识:
  • XML 的知识。

back to the top

创建表以接收数据

使用以下步骤来创建一个表来接收 XML 批量加载组件处理的数据。
  1. 创建一个名为MyDatabase在 SQL Server 数据库。
  2. 打开 SQL 查询分析器,然后再将数据库更改为MyDatabase
  3. 通过在查询分析器中运行以下 SQL 语句创建MyDatabaseCustomer表:
    USE MyDatabaseCREATE TABLE Customer (   CustomerId INT PRIMARY KEY,   CompanyName NVARCHAR(20),   City NVARCHAR(20))					

back to the top

创建 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>				

back to the top

创建映射架构文件

此下一步的文件是一个文件,用于将数据源 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>				

back to the top

创建 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				
更正代码的第二行中的连接字符串凭据,以便脚本可以使用您的 SQL Server 安装。如果不更正第 2 行之后执行该脚本,,会发生以下错误消息:
连接到数据源时出错

back to the top

运行 VBScript 程序

运行 VBScript 程序 C:\Insertcustomers.vbs Customer表中插入三个客户记录。

back to the top

验证它正常工作

在 SQL 查询分析器中,切换到MyDatabase数据库,,然后运行此查询:
SELECT * FROM Customer				
请注意,创建"创建的 XML 数据源的文件"标题中的三个记录现在都在客户表中。

back to the top

另一种方法

大容量装载 XML 组件都能够:
  • 将 XML 文档映射到多个表中,通过使用 XML 架构文件中指定 arelationship。
  • 在大容量装载前生成的表架构。
  • 大容量装载从流。
  • 大容量装载在溢出列中。

back to the top

引用

联机 ; SQLXML 丛书主题:"执行批量加载的 XML 数据"

back to the top

警告:本文已自动翻译

属性

文章 ID:316005 - 上次审阅时间:03/15/2015 10:20:00 - 修订版本: 5.0

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

  • kbsqlsetup kbhowtomaster kbmt KB316005 KbMtzh
反馈
c="https://c.microsoft.com/ms.js">