una tabla query pasar para importar exportar existente enviar datos convertir consulta como sql sql-server excel sql-server-2008 import

query - ¿Importar datos de hoja de cálculo de Excel a una tabla sql existente?



pasar datos de excel a tabla sql (4)

Puede copiar y pegar datos de en excel-sheet a una tabla SQL al hacerlo:

  • Seleccione los datos en Excel y presione Ctrl + C
  • En SQL Server Management Studio, haga clic con el botón derecho en la tabla y elija Editar las 200 filas principales.
  • Desplácese hasta la parte inferior y seleccione toda la fila vacía haciendo clic en el encabezado de la fila
  • Pega los datos presionando Ctrl + V

Nota: A menudo, las tablas tienen una primera columna que es una columna de ID con un ID generado / incrementado automáticamente. Cuando pegue sus datos, comenzará a insertar la columna más a la izquierda en Excel en la columna que está más a la izquierda en SSMS, insertando así los datos en la columna de ID. Para evitar eso, mantenga una columna vacía en la parte más a la derecha de su selección para omitir esa columna en SSMS. Eso resultará en que SSMS inserte los datos predeterminados, que es la ID generada automáticamente.

Además, puede omitir otras columnas al tener columnas vacías en las mismas posiciones ordinales en la selección de hoja de Excel que aquellas columnas que se omitirán. Eso hará que SSMS inserte el valor predeterminado (o NULL donde no se especifica ningún valor predeterminado).

Tengo una tabla llamada tblAccounts cuyos contenidos provendrán de una hoja de cálculo de Excel.

Estoy utilizando MS SQL Server 2008 (x64) en un Windows 8.1 (x64)

Intenté usar el Asistente de importación / exportación de SQL Server, pero no hay opción para elegir una tabla existente, sino solo una opción para crear una nueva.

Intenté usar otros métodos como OPENROWSETS

INSERT INTO tblAccount SELECT * FROM OPENROWSET( ''Microsoft.Jet.OLEDB.4.0'', ''Excel 12.0;Database=D:/exceloutp.xls'',''SELECT * FROM [Sheet1$]'')

pero me dio un error:

Msg 7308, Level 16, State 1, Line 1 OLE DB provider ''Microsoft.Jet.OLEDB.4.0'' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

Algunas investigaciones me dijeron que ocurrió debido a una instancia de 64 bits del servidor SQL.

El problema es que esta transferencia de datos de Excel a una tabla SQL se debe realizar utilizando solo el Asistente de importación / exportación de SQL.

¿Cómo puedo importar una hoja de cálculo de Excel a una tabla SQL existente sin crear una nueva?

¡Gracias!

Algunos enlaces visité pero no pude ayudarme a resolver mi problema:
¿Cómo importo una hoja de cálculo de excel en SQL Server?
Solucionar error OLE DB


Puede usar los datos de importación con el asistente y allí puede elegir la tabla de destino.

Ejecutar el asistente. Al seleccionar las tablas de origen y la ventana de vistas, se ven dos partes. Origen y destino.

Haga clic en el campo bajo Parte de destino para abrir el menú desplegable y seleccionar su tabla de destino y editar sus asignaciones si es necesario.


Saudate, me encontré con esto buscando un problema diferente. Definitivamente puede usar el asistente de Importación de Servidor SQL para importar datos a una nueva tabla. Por supuesto, no desea dejar esa tabla en la base de datos, por lo que sugiero que importe en una nueva tabla y luego guarde los datos en el administrador de consultas para insertarlos en la tabla existente. Puede agregar una línea para eliminar la tabla temporal creada por el asistente de importación como último paso al completar con éxito la secuencia de comandos.

Creo que su problema original se relaciona de hecho con el servidor Sql de 64 bits y se debe a que tiene un Excel de 32 bits y estos controladores no funcionan bien juntos. Me encontré con un problema muy similar cuando usé Excel de 64 bits por primera vez.