Importar varios archivos CSV a SQL Server desde una carpeta

Tengo una carpeta llamada “Volcado”. Esta carpeta consta de varios archivos .CSV. La ubicación de la carpeta es ‘C: \ Dump’

Quiero importar el contenido de estos archivos en SQL Server. Quiero el código aproximado junto con los comentarios adecuados para que lo entienda.

He intentado algunos códigos que encontré en la red. Pero no me han funcionado por alguna extraña razón.


Los pasos que me gustaría tener son

Paso 1: copie todos los nombres de archivo en la carpeta a una tabla

Paso 2: itere a través de la tabla y copie los datos de los archivos usando Bulk Insert.


Alguien por favor ayúdame en esto. Muchas gracias por adelantado 🙂

--BULK INSERT MULTIPLE FILES From a Folder --a table to loop thru filenames drop table ALLFILENAMES CREATE TABLE ALLFILENAMES(WHICHPATH VARCHAR(255),WHICHFILE varchar(255)) --some variables declare @filename varchar(255), @path varchar(255), @sql varchar(8000), @cmd varchar(1000) --get the list of files to process: SET @path = 'C:\Dump\' SET @cmd = 'dir ' + @path + '*.csv /b' INSERT INTO ALLFILENAMES(WHICHFILE) EXEC Master..xp_cmdShell @cmd UPDATE ALLFILENAMES SET WHICHPATH = @path where WHICHPATH is null --cursor loop declare c1 cursor for SELECT WHICHPATH,WHICHFILE FROM ALLFILENAMES where WHICHFILE like '%.csv%' open c1 fetch next from c1 into @path,@filename While @@fetch_status <> -1 begin --bulk insert won't take a variable name, so make a sql and execute it instead: set @sql = 'BULK INSERT Temp FROM ''' + @path + @filename + ''' ' + ' WITH ( FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'', FIRSTROW = 2 ) ' print @sql exec (@sql) fetch next from c1 into @path,@filename end close c1 deallocate c1 --Extras --delete from ALLFILENAMES where WHICHFILE is NULL --select * from ALLFILENAMES --drop table ALLFILENAMES 

Para el Paso 1 Quizás puedas mirar:

http://www.sql-server-performance.com/forum/threads/copying-filenames-to-sql-table.11546/

o

Cómo listar archivos dentro de una carpeta con SQL Server

y luego paso 2

¿Cómo se lanzan variables en T-SQL para la inserción masiva?

HTH