Pergunta

Eu quero exportar alguns dados SQL Server 2005 para o formato CSV (separados por vírgulas com aspas). Não posso pensar em um monte de maneiras complicadas de fazer isso, mas eu quero fazê-lo da direito maneira. Eu olhei bcp, mas eu não consigo descobrir como colocar as aspas em torno dos campos (exceto concatenando-los para os valores do campo, que é feio). Eu acho que eu poderia fazê-lo com sqlcmd e -o, mas que parece feio, pela mesma razão.

Existe uma maneira bcp para fazê-lo?

Existe uma maneira sqlcmd razoável para fazê-lo?

Existe alguma grande utilidade, simples embutido no Management Studio que eu só estou com vista?

Foi útil?

Solução

No Management Studio, selecione o banco de dados, clique com o botão direito e selecione Tasks->Export Data. Lá você verá opções para exportação para diferentes tipos de formatos, incluindo CSV, Excel, etc.

Você também pode executar sua consulta a partir da janela de consulta e salvar os resultados para CSV.

Outras dicas

No estúdio de gestão, as opções de conjunto de consulta para a saída para o arquivo, e em Opções> consulta resultados definir a saída para o arquivo de saída usando vírgula como delimitador.

Se você não pode usar Management Studio eu uso sqlcmd.

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","

Esta é a maneira mais rápida de fazê-lo a partir da linha de comando.

Eu tive que fazer uma coisa mais do que o que Sijin disse para obtê-lo para adicionar aspas corretamente no SQL Server Management Studio 2005. Vá para

Tools->Options->Query Results->Sql Server->Results To Grid

Coloque uma verificação ao lado desta opção:

Quote strings containing list separators when saving .csv results

Nota: o método acima não vai funcionar para SSMS 2005 Express! Tanto quanto eu sei que não há nenhuma maneira de citar os campos ao exportar resultados para .csv usando SSMS 2005 Express.

Sim, existe um utilitário muito simples em Management Studio, se você está olhando apenas para salvar consulta resultados para um arquivo CSV.

Botão direito do mouse no conjunto de resultados, o selecione "Salvar resultados como". O tipo de arquivo padrão é CSV.

Se ele se adapta às suas necessidades, você pode usar bcp na linha de comando se você fizer isso com freqüência ou quer construí-lo em um processo de produção.

Eis um link descrevendo a configuração.

Para consultas ad hoc:

Mostrar resultados no modo de grade (CTRL + D), consulta executar, clique top box mão esquerda na grade de resultados, cole para o Excel, salvar como CSV. Você pode ser capaz de colar diretamente em um arquivo de texto (não pode experimentá-lo agora)

Ou "Os resultados até arquivo" tem opções demais para CSV

Ou "Resultados ao texto" com separadores vírgula

Todas as configurações em Tool..Options e consulta .. opções (eu penso, não pode verificar) demasiado

SET NOCOUNT ON

as aspas estão aí, uso -w2000 para manter cada linha em uma linha.

No SQL 2005, isso é simples: 1. estúdio e gestão Abra o SQL Server copiar a instrução SQL que você precisa para o TSQL, como sp_whatever exec 2. query-> Resultados à grade 3. Destaque a instrução SQL e executá-lo 4. Destaque o resultados de dados (clique com o botão à esquerda na área superior esquerdo da grade de resultados) 5. Agora clique com o botão direito e selecione Salvar resultados como 6. Selecione CSV no Salvar como tipo, digite um nome de arquivo, selecione um local e clique em Salvar.

Fácil!

No SQL Server 2012 - Management Studio:

Solução 1:

Executar a consulta

Clique direito a janela de resultados

Selecionar Exceto resultados como a partir do menu

Select CSV

Solução 2:

Botão direito do mouse no banco de dados

Selecione Tarefas, exportar dados

Selecionar origem DB

Selecionar destino: Flat File Destination

Escolha um nome de arquivo

Selecionar formato - delimitado

Escolha uma tabela ou escrever uma consulta

Escolha um delimitador de coluna

Nota: Você pode escolher um qualificador de texto que irá delimitar os campos de texto, tais como citações.

Se você tem um campo com vírgulas, não use você usar a vírgula como um delimitador, porque não escapar vírgulas. Você pode escolher um delimitador de coluna, como barra vertical: | em vez de vírgula ou um caractere de tabulação. Caso contrário, escreva uma consulta que escapa seus vírgulas ou delimita o campo varchar.

O caractere de escape ou o texto qualificador você precisa usar depende de suas necessidades.

Eu acho que a maneira mais simples de fazer isso é a partir do Excel.

  1. Abra um novo arquivo do Excel.
  2. Clique na guia Dados
  3. Selecione outras fontes de dados
  4. Selecionar SQL Server
  5. Digite o nome do servidor, banco de dados, nome de tabela, etc.

Se você tem uma versão mais recente do Excel você poderia trazer os dados do PowerPivot e, em seguida, inserir esses dados em uma tabela.

SSIS é uma boa maneira de fazer isso. Isso pode ser, em seguida, programada usando SQL Server Agent trabalhos.

Você pode usar o módulo seguinte Node.js para fazê-lo com uma brisa:

https://www.npmjs.com/package/mssql-to-csv

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top