Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Importar XML en SQL Server con el componente de carga masiva XML

Este artículo se publicó anteriormente con el número E316005
Resumen
Los datos que están expresados en XML se pueden cargar en una base de datos de Microsoft SQL Server 2000 mediante el componente de carga masiva XML. En este artículo se indican los pasos que tiene que seguir para cargar los datos XML en una tabla que ya existe en la base de datos.

Nota: si está utilizando Microsoft SQL Server 2005, vea el tema "Ejemplos de la carga masiva XML" de Libros en pantalla de SQL Server 2005.

Volver al principio

Requisitos

Para seguir los pasos de este artículo, necesita:
  • Web Release 1 de XML para SQL Server 2000 (SQLXML) o posterior.
Conocimientos previos necesarios:
  • Conocimientos de XML.

Volver al principio

Crear una tabla para recibir los datos

Siga estos pasos para crear una tabla que reciba los datos que el componente de carga masiva XML procesa.
  1. Cree una base de datos denominada MyDatabase en SQL Server.
  2. Abra el Analizador de consultas de SQL Server y cambie a la base de datos MyDatabase.
  3. Cree una tabla Customer en MyDatabase ejecutando la siguiente instrucción SQL en el Analizador de consultas:
    USE MyDatabaseCREATE TABLE Customer (   CustomerId INT PRIMARY KEY,   CompanyName NVARCHAR(20),   City NVARCHAR(20))					

Volver al principio

Crear el archivo de origen de datos XML

Éste es el código del origen de datos de ejemplo. Pegue este código XML en el Bloc de notas y, a continuación, guarde el archivo como 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>				

Volver al principio

Crear el archivo del esquema de asignación

Este archivo se usa para asignar el formato del código XML del origen de datos al formato de la tabla Customer de la base de datos. Pegue este código XML en el Bloc de notas y, a continuación, guarde el archivo como 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>				

Volver al principio

Crear un programa de VBScript que ejecute el componente de carga masiva XML

Ésta es la secuencia de comandos (script) que usa el componente de carga masiva XML para insertar los tres registros que creó en la sección "Crear el archivo del origen de datos XML" en la tabla que creó en la sección "Crear una tabla para recibir los datos" con el esquema de asignación que se explica en la sección "Crear el archivo del esquema de asignación". Pegue este código VBScript en el Bloc de notas y, a continuación, guarde el archivo como 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				
Corrija las credenciales ConnectionString en la segunda línea del código para que la secuencia de comandos pueda funcionar con su instalación de SQL Server. Si no corrige la línea 2, se produce el mensaje de error siguiente cuando ejecuta la secuencia de comandos:
Error al conectar al origen de datos

Volver al principio

Ejecutar el programa de VBScript

Ejecute el programa de VBScript C:\Insertcustomers.vbs para insertar los tres registros personalizados en la tabla Customer.

Volver al principio

Comprobar que funciona

En el Analizador de consultas de SQL Server, cambie a la base de datos MyDatabase y ejecute esta consulta.
SELECT * FROM Customer				
Observe que los tres registros que se crearon en la sección "Crear el archivo de origen de datos XML" están ahora en la tabla Customer.

Volver al principio

Técnica alternativa

El componente de carga masiva XML es capaz de:
  • Asignar un documento XML a varias tablas mediante una relación que se especifica en el archivo del esquema XML.
  • Generar esquemas de tablas antes de la carga masiva.
  • Realizar la carga masiva desde una secuencia.
  • Realizar la carga masiva en columnas con desbordamiento.

Volver al principio

REFERENCIAS:

Libros en pantalla de SQLXML, tema: "Realizar la carga masiva de datos XML" (en inglés)

Volver al principio
Propiedades

Id. de artículo: 316005 - Última revisión: 08/23/2006 13:23:46 - Revisión: 4.2

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

  • kbhowtomaster KB316005
Comentarios
display: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">ody>"" ng-click="setLanguage(language);" class="ng-binding" id="language-es-uy">Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
ontent='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> t type="text/javascript" src="https://c.microsoft.com/ms.js">