Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/12/2007, 19:27
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
Re: Importar datos a unas tablas desde XML

Para esa estructura, el query es:
Código:
DECLARE @doc XML
SELECT  @doc = BulkColumn
FROM    OPENROWSET(
            BULK 'E:\Carga\paises.xml', SINGLE_CLOB
        ) AS Data
 
SELECT  paises.value('@CODIGO','INT') AS CodigoPais,
        paises.value('.', 'VARCHAR(20)') AS Pais
FROM    @doc.nodes('/PAISES/PAIS') AS x1(paises)
 
Para activar "Ad Hoc Queries", usa la herramienta "SQL Server Surface Area Configuraction". Seleccionas la opción "Surface Area Configuration for Features", en las opciones de "Database Engine" seleccionas "Ad Hoc Remote Queries". Marca "Enable OPENROWSET and OPENDATASOURCE suport".

Debes asignar permisos de "ADMINISTER BULK OPERATIONS" para el login que utilices en esta consulta.

DTS: Data Transformation Services. La herramienta ETL (extract, transform & load) que se incluía en versiones anteriores de SQL Server. Con SQL Server 2005 la herramienta ETL es SQL Server Integration Services. Al comparar ambas, diría que es como comparar un hacha de piedra con una navaja suiza. Hay mucha documentación sobre la herramienta, pero para aprender te recomiendo el libro "Professional SQL Server 2005 Integration Services" publicado por Wrox. Te aseguro que el gasto valdrá la pena.

Última edición por Beakdan; 28/12/2007 a las 21:21