5 de octubre de 2011

Importar desde Excel a SQL

If Object_id('tempdb..#tmpArchivo') is not null Drop Table #tmpArchivo
Create table #tmpArchivo (Num float,Nombre varchar(100),Apellido varchar(100),Direccion varchar(100))

Insert into #tmpArchivo
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=E:\Siopfile\Archivo.xls',
                'SELECT * FROM [Dir$]')
--Leer Excel en caso de que no tenga Cabecera cada columna
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Source\Addresses.xls;HDR=No',
                'SELECT * FROM [Sheet1$]')

--Para indicar que las columnas tienen diferentes tipos (Ej: q venga en el CP numeros y letras)
 SELECT
* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel8.0;Database=C:\Source\Addresses.xls;HDR=No;IMEX=1',
                'SELECT * FROM [Sheet1$]')

--Para importar directo a una tabla SQL>Excel
SELECT * into #tmpArchivo2 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=E:\Siopfile\Archivo.xls',
                'SELECT * FROM [Dir$]')

--Para importar con el tipo de datos correcto
SELECT CAST([FirstName] AS VARCHAR(20)) AS [FirstName],
       CAST([LastName] AS VARCHAR(20)) AS [LastName],
       CAST([Address] AS VARCHAR(50)) AS [Address],
       CAST([City] AS VARCHAR(30)) AS [City],
       CAST([State] AS VARCHAR(2)) AS [State],
       CAST([ZIP] AS VARCHAR(10)) AS [ZIP]
INTO [dbo].[Addresses_Temp]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1',
                'SELECT * FROM [Sheet1$]')

No hay comentarios:

Publicar un comentario