quinta-feira, 10 de dezembro de 2009

Exportar e importar uma consulta em SQL Server para arquivo CSV

Em alguns casos torna-se extremamente necessário exportar o resultado de uma consulta para um arquivo csv, para posterior importação em aplicativos de planilha eletrônica, como o excel por exemplo. Aqui vão os comandos para o caminho de ida (Gerar o CSV a partir de uma consulta sql) e o caminho de volta(que nem é tão volta assim), onde você poderá preencher uma tabela obtendo os dados de um arquivo CSV.

 Exportar uma consulta para arquivo CSV
Obs: Substitua, convenientemente, o nome do arquivo csv, o nome do banco de dados, o nome da tabela e os campos que se quer exportar para o arquivo csv.


declare @sql varchar(8000); select @sql = 'select * from nome_banco_de_dados.dbo.nome_tabela'
declare @filename varchar(255); select @filename = 'c:\nome_do_arquivo.csv'
/*Não alterar linhas abaixo*/
declare @cmd varchar(8000); select @cmd = 'bcp "'+@sql+'" queryout '+@filename+' -c -t; -T '
exec master..xp_cmdshell @cmd
------------------------------------------------------------------------------------------------------------------------------------------------
Importar um arquivo CSV para uma tabela
Obs: Substitua, convenientemente, o nome do arquivo csv, o nome do banco de dados, e o nome da tabela que se quer popular com os dados do arquivo csv.
Obs2: A tabela e o banco de dados já devem existir previamente antes de usar os comandos abaixo.


BULK INSERT nome_banco_de_dados.dbo.nome_tabela
FROM 'c:\nome_do_arquivo.csv'
WITH( FIELDTERMINATOR = ';', ROWTERMINATOR = '\n')
------------------------------------------------------------------------------------------------------------------------------------------------

Espero que seja útil... Já me ajudou muito.

2 comentários:

  1. eu fiz e não deu certo me aparece a mensagem que nõ existe Msg 4860, Level 16, State 1, Line 1
    Cannot bulk load. The file "C:\capacitação\6. Geosan\01. Banco de Dados\Tabelas Views Geosan Preenchidas\lig_comercial_consumo.cvs" does not exist.

    ResponderExcluir
  2. Opa!
    Este erro foi na exportação para csv ou na importação de um csv?

    ResponderExcluir