una tabla studio query para management into importar guardar from exportar existente enviar datos data sql-server excel sql-server-2008 import etl

tabla - Importe columnas de hoja de cálculo de Excel en la base de datos de SQL Server



importar datos de excel a sql server management studio (15)

Tengo una hoja de cálculo de Excel que deseo importar columnas de selección en mi tabla de base de datos de SQL Server 2008. El asistente no ofreció esa opción.

¿Existe alguna opción de código fácil?



El asistente de importación ofrece esa opción. Puede usar la opción para escribir su propia consulta para los datos a importar, o puede usar la opción de copiar datos y usar el botón "Editar asignaciones" para ignorar las columnas que no desea importar.


En primer lugar, pruebe la versión de 32 bits del Asistente de importación. Esto muestra muchos formatos de importación más compatibles.

Antecedentes: todo depende de la instalación de Office (motores de tiempo de ejecución).

Si no tiene instalado Office 2007 o superior, el Asistente de importación (32 bits) solo le permite importar archivos de Excel 97-2003 (.xls).

Si tiene instalados Office 2010 y geater (viene también en 64 bits, no recomendado), el Asistente de importación también admite archivos de Excel 2007+ (.xlsx).

Para obtener una descripción general de los tiempos de ejecución, ver el proveedor ''Microsoft.ACE.OLEDB.12.0'' no está registrado en la máquina local


Esto puede sonar a la vuelta de la esquina, pero es posible que desee ver el uso de Excel para generar el código INSERT SQL que puede pasar al Analizador de consultas para crear su tabla.

Funciona bien si no puedes usar los asistentes porque el archivo de Excel no está en el servidor


Excel + SQLCMD + Perl = exceltomssqlinsert

y puede usar su Excel como frond-end para MSSQL db ... Tenga en cuenta la tabla truncada al comienzo de cada archivo de inserción sql generado ...


He usado DTS (ahora conocido como SQL Server Import and Export Wizard). Utilicé este tutorial que me fue muy útil incluso en Sql 2008 y excel 2010 (14.0)

espero que esto ayude

-RE



Microsoft Access es otra opción. Puede tener una base de datos de Access localmente en su máquina en la que importe las hojas de cálculo de Excel (asistentes disponibles) y enlace a las tablas de la base de datos de SQL Server a través de ODBC .

A continuación, puede diseñar una consulta en el acceso que anexa datos de la hoja de cálculo de Excel a las Tablas de SQL Server.


Otra opción es usar VBA en Excel y escribir una macro para analizar los datos de la hoja de cálculo y escribirlos en SQL.

Un ejemplo está aquí: http://www.ozgrid.com/forum/showthread.php?t=26621&page=1

Sub InsertARecord() Dim cnt As ADODB.Connection Dim rst As ADODB.Recordset Dim stCon As String, stSQL As String Set cnt = New ADODB.Connection Set rst = New ADODB.Recordset stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY" cnt.ConnectionString = stCon stSQL = "INSERT INTO MyTable (Price)" stSQL = stSQL & "VALUES (500)" cnt.Open rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText If CBool(rst.State And adStateOpen) = True Then rst.Close Set rst = Nothing If CBool(cnt.State And adStateOpen) = True Then cnt.Close Set cnt = Nothing End Sub


Podría usar OPENROWSET, algo así como:

SELECT * FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:/FILE.xls'', ''Select * from [Sheet1$]''

Solo asegúrese de que la ruta sea una ruta en el servidor, no su máquina local.


Por ''the wiz'' asumo que estás hablando del ''Asistente de importación y exportación de SQL Server''. (También soy bastante nuevo, así que no entiendo la mayoría de las preguntas, y mucho menos la mayoría de las respuestas, pero creo que entiendo esta). Si es así, ¿no podría tomar la hoja de cálculo, o una copia, borrar las columnas que no desea importar y luego usar el asistente?

Siempre he encontrado la capacidad de hacer lo que necesito con él y solo estoy en SQL Server 2000 (no estoy seguro de cómo difieren otras versiones).

Editar: De hecho, ahora lo estoy mirando y parece que puedo elegir qué columnas quiero asignar a qué filas de una tabla existente. En la pantalla ''Seleccionar tablas y vistas de origen'', consulto la hoja de datos que estoy usando, selecciono ''Destino'' y luego hago clic en el botón ''Editar ...''. Desde allí, puede elegir la columna Excel y la columna de la tabla para asignarla.


Si desea una herramienta visual con interfaz de escritorio, incluida la validación, es posible que le guste esta herramienta de Excel. También puede usar la herramienta para crear tareas de edición de datos multiusuario, o incluso pegar datos en el servidor SQL desde cualquier fuente.

Cómo validar e importar la hoja de cálculo de Excel a la base de datos de SQL Server:

http://leansoftware.net/en-us/help/excel-database-tasks/worked-examples/how-to-import-excel-spreadsheet-to-sql-server-data.aspx


Una vez conectado a la base de datos Sql Server 2005, desde la ventana del Explorador de objetos, haga clic con el botón derecho en la base de datos en la que desea importar la tabla. Seleccione Tareas -> Importar datos. Esta es una herramienta simple y le permite ''mapear'' los datos entrantes en la tabla apropiada. Puede guardar los scripts para volver a ejecutarlos cuando sea necesario.


Microsoft sugiere varios métodos:

  • Servicios de transformación de datos de SQL Server (DTS)
  • Servicios de integración de Microsoft SQL Server 2005 (SSIS)
  • Servidores vinculados a SQL Server
  • Consultas distribuidas de SQL Server
  • Objetos de datos ActiveX (ADO) y el proveedor Microsoft OLE DB para SQL Server
  • ADO y el proveedor Microsoft OLE DB para Jet 4.0

Si el asistente (DTS) no funciona (y creo que debería hacerlo), podría intentar algo como esto http://www.devasp.net/net/articles/display/771.html que básicamente sugiere hacer algo así como

INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4]) SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4] FROM OPENROWSET (''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database=D:/Excel.xls;HDR=YES'', ''select * from [Sheet1$]'') AS A;


go sp_configure ''show advanced options'',1 reconfigure with override go sp_configure ''Ad Hoc Distributed Queries'',1 reconfigure with override go SELECT * into temptable FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database=C:/Documents and Settings/abhisharma/Desktop/exl/ImportExcel2SQLServer/ImportExcel2SQLServer/example.xls;IMEX=1'', ''SELECT * FROM [Sheet1$]'') select * from temptable