Pregunta

¿Alguien tiene una técnica para generar comandos de creación de tablas SQL (e inserción de datos) de forma pragmática desde un archivo CSV (u hoja en un archivo .xls)?

Tengo un sistema de base de datos de terceros que me gustaría completar con datos de un archivo csv (u hoja en un archivo xls), pero el importador proporcionado no puede crear la estructura de la tabla automáticamente mientras lo hace con la importación.Mi archivo csv tiene muchas tablas con muchas columnas, por lo que me gustaría automatizar el proceso de creación de tablas, así como la importación de datos, si es posible, pero no estoy seguro de cómo generar la declaración de creación...

¿Fue útil?

Solución

En el servidor SQL es tan fácil como

SELECT * INTO NewTablenNmeHere
FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=C:\testing.xls','SELECT * FROM [Sheet1$]') 

Otros consejos

Recomiendo echarle un vistazo csvkit.Es csvsql La función puede generar declaraciones de inserción de tablas, o incluso ejecutarlas por usted, desde la mayoría de las fuentes de datos tabulares.

BULK 
INSERT CSVTest
        FROM 'c:\csvtest.txt'
            WITH
    (
                FIELDTERMINATOR = ',',
                ROWTERMINATOR = '\n'
    )

Lamentablemente, estoy usando un SQLEngine para sistemas integrados, por lo que no admite fuentes de datos BULK INSERT u OLEDB, por lo que estaba pensando en adoptar el enfoque de generación de declaraciones SQL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top