Pages

domingo, 31 de julho de 2011

Como importar arquivos (.csv/.txt) para SQL Server


Apesar de ser um procedimento bem simples é difícil de se encontrar conteúdos claros, de fácil entendimento na internet. Sendo assim, abaixo, em 3 passos rápidos vemos como importar dados de arquivos .csv/.txt para SQL Server.
O bacana de conhecer este procedimento é que muitos software trabalham com exportação de dados no formato CSV. Dessa forma vc consegue fazer uma comunicação fácil com o SQL Server.
1° Passo: É preciso ter uma tabela no SQL para realizar o input dos dados. Se ainda não tem uma tabela, crie a tabela de acordo com sua necessidade seguindo o procedimento abaixo:

-- Exemplo:
create table tab_clientes(
      codigo            int,
      cpf         varchar(11),
      nome        varchar(30),
      endereco    varchar(30),
      telefone    varchar(15),
      email       varchar(15)
);
2° passo: Exportar os dados para o arquivo csv/txt. É importante ter atenção nesta etapa pois os dados no arquivo cvs devem seguir exatamente a mesma ordem dos campos da tabela. Note que neste exemplo usamos como separador de campos o caractere de “ ; ” (ponto e vírgula). 


3° passo: Por fim, basta executar o comando abaixo no SQL server indicando a tabela onde serão imputados os dados e o caminho do arquivo .txt/.csv onde as informações serão buscadas.

bulk insert tab_clientes -- inserir na tabela desejada
from 'C:\Users\Emattos\clientes.txt'-- caminho do arquivo e formato
with
(
fieldterminator = ';',  -- caractere que separa os campos no arquivo
rowterminator = '\n'    -- referencia para fim da linha
)
GO

Tags: cvs para SQL, txt para SQL, csv2SQL, txt2SQL, Importando arquivo txt para SQL Server.

9 comentários:

  1. Bom dia! Eu gostaria de saber se existe uma rotina que pegue todos os arquivos de um determinado diretório. Obrigado

    ResponderExcluir
  2. Eu queria um store procedure sql server para exportar e csv dados de uma tabela ou consulta um exemplo.
    mcarvalho0864@hotmail.com

    ResponderExcluir
  3. Leandro e Marcos, tudo bem?
    Para ambas situações utilizo um software de BI que faz o ETL entre as bases do SQL e arquivos/pastas diversas continas na rede ou computador. O nome deste software é Kettle e vcs encontram no link abaixo: http://kettle.pentaho.com/. Grande abs!

    ResponderExcluir
  4. Este comentário foi removido por um administrador do blog.

    ResponderExcluir
  5. recebo está mensagem abaixo quando executo o codigo ,pode me explicar?
    "Você não tem permissão para usar a instrução de carregamento em massa"

    ResponderExcluir
  6. Anônimo, veja se pode ser a situação abaixo: A partir do SQL Server 2005 - Quando o usuário está conectado através de autenticação do Windows, poderá ler apenas os arquivos acessíveis à conta de usuário do Windows, não importando o perfil de segurança dentro SQL Server.
    Nas versões anteriores usam o service account para acessar o bulk file. Não importando qual a autenticação é usada,(Windows ou SQL Server).

    ResponderExcluir
  7. Olá...

    Eu sou nova nessas coisas... Basicamente o que pretendo é exportar periodicamente ficheiros .csv para uma base de dados sql, contudo o nome dos ficheiros sofrem alterações consoante são exportados... Podes me ajudar?

    Desde ja obrigada!

    ResponderExcluir
  8. Oi Eduardo,
    no meu caso o delimitador é uma quantidade de caracteres. Cada coluna tem uma quantidade especificada.
    Como faço para importar?
    abs,

    ResponderExcluir

LinkWithin

Related Posts Plugin for WordPress, Blogger...