Salvando resultados com cabeçalhos no Sql Server Management Studio


183

Estou usando o SQL Server Management Studio.

Desejo salvar os resultados de uma consulta em um arquivo do Excel.

Eu escolho "Salvar como" e, em seguida, salve no arquivo CSV, que eu posso abrir no Excel. Tudo bem, exceto que estou com falta de cabeçalhos de coluna, alguma idéia de como eu os exporto?

Respostas:


274

Tools> Options> Query Results> SQL Server>Results to Text (or Grid if you want) >Include columns headers in the result set

Pode ser necessário fechar e reabrir o SSMS depois de alterar esta opção.

Na barra de ferramentas do SQL Editor, você pode selecionar salvar no arquivo sem precisar reiniciar o SSMS


35
+1, testou isso e funciona: Ferramentas -> Opções -> Resultados da consulta -> SQL Server -> Resultados na grade e marque 'Incluir cabeçalhos de coluna ao copiar ou salvar os resultados'.
Jeff Ogata

46
Isso funciona para o SSMS 2012 - você precisa reiniciar o SSMS para que as configurações entrem em vigor.
SliverNinja - MSFT

17
Para confirmar, você definitivamente precisa fechar e reabrir o SSMS para que esta opção seja aplicada.
Christopher King

8
Como Christopher disse, você precisa reiniciar o SSMS para que as alterações funcionem.
Rob

8
Para o SSMS 2016, você também precisa reiniciá-lo para que essas alterações tenham efeito.
31717 Chris Haas

36

Experimente o Assistente de exportação. Neste exemplo, seleciono uma tabela inteira, mas você pode facilmente especificar uma consulta:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

(você também pode especificar uma consulta aqui)

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui


4
Obrigado por isso. Mas isso é para tabelas. Minha pergunta era para uma consulta.
Dublintech

1
Você também pode especificar uma consulta na quarta etapa - "Especificar cópia ou consulta da tabela".
John Dewey

Eu tentei todas as outras abordagens, e essa é a única que funcionou para meus tipos de dados mistos.
DOK

3
Enquanto isso funciona, é muito doloroso e demorado. SQL Server e Excel são produtos da MS, é incrível que não exista um botão de exportação simples no ano de 2013!
23413 Andre

34

Outra possibilidade é usar a área de transferência para copiar e colar os resultados diretamente no Excel. Apenas tenha cuidado com as colunas do tipo Geral do Excel, pois elas podem ter resultados imprevisíveis, dependendo dos seus dados. CTL-Aem qualquer lugar da grade de resultados e clique com o botão direito do mouse:

insira a descrição da imagem aqui

Se você tiver problemas com o formato Geral do Excel para fazer conversões indesejadas, selecione as colunas em branco no Excel antes de colar e altere o formato para "texto".


Isso é ótimo, exceto a formatação do Excel. Os números com zeros iniciais (por exemplo, números móveis) eliminam os zeros no Excel. Existem outros problemas de formatação aguardando também, use por sua conta e risco. Obrigado Microsoft!
e_i_pi

12

Pelo menos no SQL Server 2012, você pode clicar com o botão direito do mouse na janela de consulta e selecionar Opções de Consulta. A partir daí, você pode selecionar Incluir cabeçalhos para grade e / ou texto e fazer com que o Salvar como funcione da maneira desejada, sem reiniciar o SSMS.

Você ainda precisará alterá-lo em Ferramentas-> Opções na barra de menus para que novas janelas de consulta usem essas configurações por padrão.


7

O mesmo problema existe no Visual Studio, veja como corrigi-lo lá:

Vamos para:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

Agora clique na caixa de seleção para verdadeira: "Incluir cabeçalhos de coluna ao copiar ou salvar os resultados"


6

Selecione seus resultados clicando no canto superior esquerdo, clique com o botão direito e selecione "Copiar com cabeçalhos". Cole no excel. Feito!


4

As configurações recomendadas para alterar a resposta aceita de @ Diego podem ser boas se você desejar definir esta opção permanentemente para todas as sessões de consulta futuras que você abrir no SQL Server Management Studio (SSMS). Isso geralmente não é o caso. Além disso, a alteração dessa configuração requer a reinicialização do aplicativo SQL Server Management Studio (SSMS). Esta é novamente uma experiência "não muito agradável" se você tiver muitas janelas de sessão de consulta aberta não salvas e estiver no meio de alguma depuração.

O SQL Server oferece uma opção muito eficiente de alterá-lo por sessão, o que é muito rápido, prático e conveniente . Estou detalhando as etapas abaixo usando a janela de opções de consulta:

  1. Clique com o botão direito do mouse na janela do editor de consulta> Clique Query Options...na parte inferior do menu de contexto, como mostrado abaixo:

insira a descrição da imagem aqui

  1. Selecione Results> Gridno painel de navegação esquerdo. Marque a Include column headers when copying or saving the resultscaixa de seleção no painel direito, como mostrado abaixo:

insira a descrição da imagem aqui

É isso aí. Sua sessão atual honrará suas configurações com efeito imediato sem reiniciar o SSMS. Além disso, essa configuração não será propagada para nenhuma sessão futura. Alterar efetivamente essa configuração por sessão é muito menos barulhento.


2

Cheguei aqui ao procurar uma maneira de fazer o SSMS escapar adequadamente dos separadores CSV ao exportar resultados.

Adivinha? - esta é realmente uma opção e está desmarcada por padrão . Portanto, por padrão, você obtém arquivos CSV quebrados (e talvez nem perceba, especialmente se a sua exportação for grande e os dados não tiverem vírgulas normalmente) - e você deverá entrar e clicar em uma caixa de seleção para que seus CSVs exportem corretamente!

Para mim, isso parece uma escolha de design monumentalmente estúpida e uma metáfora adequada para a abordagem da Microsoft em relação ao software em geral ("quebrado por padrão, requer ações ritualísticas sem sentido para fazer funcionar a funcionalidade trivial").

Mas terei prazer em doar US $ 100 para uma instituição de caridade escolhida pelo entrevistado, se alguém puder me dar uma razão válida da vida real para que essa opção exista (ou seja, um cenário real em que foi útil).


2

No SQL Server 2014 Management Studio, a configuração é em:

Ferramentas> Opções> Resultados da consulta> SQL Server> Resultados para texto> Incluir cabeçalhos de coluna no conjunto de resultados.


0

Eu também enfrento o mesmo problema. Quando usei, clique com o botão direito do mouse na janela de consulta e selecione Opções de Consulta. Mas as linhas do cabeçalho não aparecem no arquivo CSV de saída.

Então eu efetuo logoff do servidor, efetuo login novamente e executo o script. Então funcionou.


Você tentou alterar a Include column headers when copying or saving the resultsopção? Esta opção é visível quando você seleciona Results> Gridno painel de navegação esquerdo da Query Optionsjanela.
RBT
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.