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:
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 MyDatabase
CREATE 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