Importando arquivos CSV para o banco de dados SQL Server

Visualizações: 3.351
Tempo de Leitura: 3 minutos

Olá Pessoal!
Bom dia!

Hoje eu estou bem empolgado com essa stored procedure que vou apresentar a vocês, porque ela realmente me deu um pouco de trabalho para desenvolver. Com certeza, vocês já ouviram falar de arquivos CSV (Comma-separated values), aqueles arquivos de texto onde as informações são organizadas utilizando um delimitador, geralmente vírgula (,) ou ponto e vírgula (;).

Pois bem, semana passada surgiu uma necessidade onde eu trabalho de importar um arquivo CSV para dentro do banco de dados, onde as colunas teriam que ser criadas de acordo com o arquivo CSV. Para resolver isso, eu criei uma stored procedure que lê o arquivo CSV, identifica as colunas, e cria uma tabela dinamicamente para armazenar os dados vindos do CSV.

Na procedure, eu coloquei ainda um parâmetro opcional para informar se a primeira linha do arquivo é o cabeçalho do CSV. Neste caso, a primeira linha não será exibida no resultado final e o título das colunas é alterado dinamicamente para o nome contido naquela coluna da linha do cabeçalho.

Antes de ir ao código, essa procedure utiliza duas outras funções das quais eu já havia falado aqui no blog:

UPDATE 20/03/2017: Caso você queira utilizar uma solução mais robusta, completa e mais performática, confira como importar dados de arquivos tabulares, com o CSV, utilizando o CLR (C#) no post SQL Server – Como exportar e importar arquivos com dados tabulares (Ex: CSV) utilizando o CLR (C#).

Vamos ao que interessa. Código-fonte!!

Forma de utilização:

Arquivo original:
Importa_CSV_1

Tabela importada no banco de dados com o comando acima:
Importa_CSV_2

É isso aí pessoal!
Gostaram?