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

Seleccione idioma Seleccione idioma
Id. de artículo: 316005 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E316005
Expandir todo | Contraer todo

En esta página

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.

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.

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 MyDatabase
    CREATE TABLE Customer (
       CustomerId INT PRIMARY KEY,
       CompanyName NVARCHAR(20),
       City NVARCHAR(20))
    					

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>
				

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>
				

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

Ejecutar el programa de VBScript

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

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.

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.



REFERENCIAS:

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

Propiedades

Id. de artículo: 316005 - Última revisión: miércoles, 23 de agosto de 2006 - Versión: 4.2
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbhowtomaster KB316005

Enviar comentarios

 

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