Importar a Sql Server 2019 desde Excel

221 views
Skip to first unread message

integral

unread,
Mar 5, 2024, 1:16:19 PM3/5/24
to Comunidad de Visual Foxpro en Español
Buenas Tardes Amigos 

Tiene alguno de ustedes algun procedimiento o Query que me permita importar desde una pagina de Excel hasta una tabla de Sql Server 2019

intente hacerlo con el Asistente del Sql Server pero me marca un error...

Agradezco vuestra ayuda.

Saludos

Integral.

Miguel Antúnez

unread,
Mar 5, 2024, 1:20:58 PM3/5/24
to publice...@googlegroups.com
Hola Integral, para asegurarte de tener los drivers correctos, la forma más sencilla es exportarlos a CSV y luego hacer la migración. Si este proceso va a ser recurrente y necesitas automatizarlo, sería bueno usar la herramienta Integration Services.

Saludos.



--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/6f264669-cd52-4bf9-9941-fdc33a29befbn%40googlegroups.com.


--
Miguel Angel Antúnez Camones
mant...@gmail.com

integral

unread,
Mar 5, 2024, 2:34:12 PM3/5/24
to Comunidad de Visual Foxpro en Español
Que tal Amigo Miguel

Buenas Tardes

Buscando información encontré el siguiente comentario con relacion al tema sera tan sencillo como lo explica...

Si vas a llevar una información de una tabla(hoja) de Excel a sql Server haces esto:
Si trabajas con un administrador corporativo(management Studio)... Creas la tabla que coincida exactamente con tu hoja Excel ...
Luego le.das editar a la tabla de sql Server (click derecho en la tabla y editar)
eso te pone la tabla en modo edicion...
Te vas a la hoja de Excel, seleccionas el rango, le das click derecho copiar ...
Regresas a la tabla sql Server y como estas en modo edición le das clic a la fila en el recuadro(que muestra un *) de la izquierda de tal forma que te quede la fila vacía seleccionada sobre esa fila le das click derecho y le das clic a pegar ...

Control para Importar desde Excel descargo_AccessDatabaseEngine.jpg

Adjunto imagen del error que me aparece en el Sql Server

Agradezco tus comentarios y sugerencias

Edwin Duran

unread,
Mar 5, 2024, 2:38:06 PM3/5/24
to Comunidad de Visual Foxpro en Español
Si usas el SQL Server Management  Studio, encima de la tabla le das editar, si colocas los campos en el mismo orden de tu tabla en excel, lo puedes copiar y pegar

Miguel Antúnez

unread,
Mar 5, 2024, 3:03:28 PM3/5/24
to publice...@googlegroups.com
Como te comentaba tienes que bajar e instalar estos componentes, es un error muy común, 
Baja e instala esos componentes y prueba.

Pero como te recomendaba, para no hacer todo eso, pasa tu excel a CSV y te evitas hacer todos estos pasos.


Saludos.





integral

unread,
Mar 7, 2024, 10:38:59 AM3/7/24
to Comunidad de Visual Foxpro en Español
Que tal Amigos

Ya pude descargar e instalar el archivo que faltaba para que funcione el Asistente del SQL Server para la Importación de Datos

Ahora bien el año pasado tuve el mismo problema y para la creación de las tablas en SQL Server para salir del paso, las creaba en VFP 9.0 y con el Upsizing las migraba al SQL Server 2008 r2

Pues anoche con Asistente VFP he creado la tabla vacía y con el Asistente del SQL Server intente pasar los registros del Excel

Pero me marca el error que aparece en la imagen que adjunto.

En Diciembre migre al Sql Server 2019 y parece ser que ya no me acepta ese  estilo de migración.

Voy a intentar crear la tabla del mismo SQL Server 2019

Atte,

Integral
WhatsApp Image 2024-03-06 at 11.33.13 PM.jpeg

Dsan

unread,
Mar 7, 2024, 12:49:35 PM3/7/24
to publice...@googlegroups.com

Hola Integral

Si no son muchas tablas, ya probaste copiar y pegar, cuando me ha tocado eso yo solo hago control +C y control +v para pegar, claro antes formatear bien la hoja de excel como lo requiere la tabla.

Saludos

DSanchez

--

integral

unread,
Mar 7, 2024, 1:32:42 PM3/7/24
to Comunidad de Visual Foxpro en Español
Que tal amigo Douglas :

Lo tengo en cuenta como el Plan B si no logro hacerlo mediante el Asistente que tiene SQL Server 2019 ni modo.

Buscando información en este foro, encontré un procedimiento que en su momento lo compartió su creador pero ahora que hice una prueba ya no funciona, creo que habría que hacer unos cambios

Aquí les dejo el procedimiento.

Antes debe descargar e instalar en el servidor AccessDatabaseEngine.exe para versión 2010 en mi caso.

*/

Enabling SQL Server Instance to Read File
The settings and permissions to execute a query external data has some details that should be performed to be able to get the data from an Excel files (.xls ou .xlsx) and also other formats.
The execution of distributed queries as OPENROWSET is only possible when the SQL Server instance has the Ad Hoc Distributed Queries configuration enabled. By default, every SQL Server instance maintains this permission denied.
Note The Advanced Settings should only be changed by an experienced professional or a certified professional in SQL Server. It's important to note not use these commands in Production Databases without previous analysis. We recommend you run all tests in an isolated environment, at your own risk.
To enable this feature just use the sp_configure system stored procedure in your SQL instance to display its Advanced Settings in show advanced options parameter and soon to follow, enable the Ad Hoc Distributed Queries setting to enabling the use of distributed queries.
*/

USE [master]
GO

--CONFIGURING SQL INSTANCE TO ACCEPT ADVANCED OPTIONS
EXEC sp_configure 'show advanced options', 1
go

RECONFIGURE

--ENABLING USE OF DISTRIBUTED QUERIES
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
go

RECONFIGURE

/*
These changes in the Advanced settings only take effect after the execution of the RECONFIGURE command.

To get permission granted to use the Data Provider through sp_MSset_oledb_prop system stored procedure to link Microsoft.ACE.OLEDB.12.0 in SQL Server using AllowInProcess parameter so we can use the resources of the Data Provider and also allow the use of dynamic parameters in queries through of DynamicParameters  parameter for our queries can use T-SQL clauses.
*/

--ADD DRIVERS IN SQL INSTANCE
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
--EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.8.0', N'AllowInProcess', 0
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
--EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.8.0', N'DynamicParameters', 0

SELECT * FROM OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source=F:\sql_prg\Migra_C\ENT1_A.XLS; Extended Properties="Excel 12.0 Xml;HDR=YES"')... [Ent1$] 

Algún colega que conozca sobre este procedimiento

Atte.,

Integral

integral

unread,
Mar 8, 2024, 9:35:59 AM3/8/24
to Comunidad de Visual Foxpro en Español
Que tal Amigos :

Como comentaba ya instale el complemento que faltaba para trabajar con el Asistente de importación del SQL Server 2019

El problema ahora radica que no me visualiza el nombre de la tabla creada. Me aparecen los nombres de cada pestaña del archivo de Excel

Y me vuelve a marca el error



Algún colega que me pueda orientar con la soluciónWhatsApp Image 2024-03-06 at 11.33.13 PM (1).jpeg.

Saludos,

Integral 

nkris...@gmail.com

unread,
Mar 8, 2024, 3:38:22 PM3/8/24
to Comunidad de Visual Foxpro en Español
y si le das clik en messages para que te muestre el error.
algunas veces puede ser error en la data, para descartar si solo dejas un solo registro en el excel y lo subes al sql para que puedas verificar.

saludos.

integral

unread,
Mar 8, 2024, 4:30:26 PM3/8/24
to Comunidad de Visual Foxpro en Español
Estuve buscando información sobre el uso del Asistente de Importación del Sql Server 2019

Y encontré el siguiente link 

Estuve analizando el problema y creo saber lo que causa el error...

Seguiré buscando la solución.

Atte.,

Integral

Dsan

unread,
Mar 8, 2024, 10:45:38 PM3/8/24
to publice...@googlegroups.com

Madre santa, con todo esos pasos hasta me maree, lo último que haría es bajarlos a dbf y los envío a sql server como enviar cualquier tabla o cursor hasta xml de un solo, por ahi Miguel Antunez compartió manual, asi lo veo mucho más práctico y automatizable,  con una barrita de incremento para que se vea un poco nice, y flas flas, listo.

Eso es poco práctico con ese Asistente...


integral

unread,
Mar 9, 2024, 7:10:10 PM3/9/24
to Comunidad de Visual Foxpro en Español
Que tal Amigo Douglas :

Parece muy engorroso. Pero hace unos 10 años me sirvió, claro fue con la versión OLEDB.12.0 y la versión del enlace que dio el Miguel Antunez es de la versión
OLEDB.16.0

Buscando en mis archivo encontré la versión  OLEDB.12.0 y funciona

Encontre el siguiente Codigo que tambien funciona

SELECT *
 INTO dbo.Prod_Office
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\MIGRACONSU\ERP_CONSUMO\EXCEL\Utiles_Oficina.xlsx;HDR=YES; IMEX=1',
'SELECT * FROM [Hoja1$]')
GO

SELECT * FROM Prod_Office
GO

En ambos casos el resultado obtenido me muestra  los registros de la importación y un monto de filas con el Valor de NULL y no se como evitar ello...
 
También recuerdo que utilizaba otro controlador que empezaba con el nombre de JET...

Te doy la razón a lo indicas es mas también hago ese proceso a veces.

Utilizo el Upsizing_VFP  desde VFP y tabla obtenida lo modifico y aumento los campos y luego lo paso a SQL Server.

VALORES_NULL.jpg 

Atte.,

Integral
Reply all
Reply to author
Forward
Message has been deleted
0 new messages