Copiar grandes dados do resultado da consulta sql

9

No meu sql server 2008, depois de executar a consulta, o retorno de dados é muito grande, digamos em milhões. Eu tentei copiar, mas ele fornece uma exceção de erro de memória sql. Você pode nos informar como posso copiar todos os dados e colá-los no Excel.

Não quero exportá-lo para o arquivo txt, pois os dados não estão sendo alinhados. Então, eu quero copiar e colar manualmente no Excel. Por favor, deixe-me saber a solução para este

Sohail
fonte
Como um ponto de esclarecimento: você pode estar recebendo uma exceção de "falta de memória" quando o SSMS tenta manipular os dados recebidos; se houver mais do que cabe na memória, você receberá esse erro. Se isso não causar o erro de falta de memória, mas ocorrer quando você tentar copiar e colar os dados, o problema estará em copiar os dados para a memória pela segunda vez para copiar e colar. Qualquer resposta que envolva ignorar o retorno dos dados para o SMSS (como a resposta atualmente aceita ) evita isso.
RDFozz

Respostas:

17

Você não poderá copiar e colar como quiser. No entanto, você tem várias opções. O mais simples é clicar com o botão direito do mouse na saída e salvar como um arquivo CSV. Isso pressupõe que você não tenha vírgulas nos seus dados de texto.

Salvar resultados como

Sua próxima opção (e provavelmente a melhor) é usar o assistente de exportação. Clique com o botão direito do mouse no nome do banco de dados, depois em Tarefas e em Assistente de Exportação

Onde está o mago?

Sua fonte será o banco de dados em que você clicou com o botão direito.

Fonte

Escolha um destino excel.

Destino

Selecione a opção Escrever uma consulta para especificar os dados a serem transferidos.

Escolha uma consulta

Cole na sua consulta

Cole na sua consulta

Você pode alterar o nome da planilha em sua planilha aqui.

Selecionar tabelas de origem

A seguir, é apresentada a lista de mapeamentos para você revisar

Lista de mapeamentos

E a partir daqui, você pode executar o pacote imediatamente ou salvar o pacote SSIS para uso / correções posteriores. Se a sua exportação não funcionar pela primeira vez e você estiver familiarizado com o SSIS, eu salvarei o pacote para que você possa entrar nele e fazer correções fora do assistente.

Salvar e executar opções

Em seguida, basta clicar em Concluir e terminar novamente.

Kenneth Fisher
fonte
2

Se você insiste no Excel como destino, existem duas opções fáceis.

Primeiro, o "sqlcmd.exe" ou "bcp.exe" nativo permite executar uma consulta e a gera automaticamente em um arquivo. Supondo que seus dados não tenham guias, a saída delimitada por guias será inserida automaticamente nas colunas do Excel. Se seus dados tiverem guias, você precisará escolher outro delimitador e o Excel selecionará as colunas com base nisso durante a importação.

Segundo, solte sua consulta em um relatório SSRS (SQL Server Reporting Services), execute-o, clique na seta à direita do ícone de disquete / salvar e exporte para o Excel. Milhões de linhas requerem o SSRS 2012, salvando como .xlsx - infelizmente, mesmo o SSRS 2008 R2 não permite mais do que 64k linhas. Para automatizar, agende o relatório.

Referências para estes comandos:

Entrada do sqlcmd do Technet

Technet bcp entry

postagem no fórum delimitada por guia social.msdn sqlcmd

Senhas anti-fracas
fonte
0

Se é apenas uma coisa de uma vez.

Execute a consulta. Na janela de resultados, no canto inferior direito, clique no quadrado vazio no canto superior esquerdo. Salvar resultados como ... O padrão é um CSV, escolha onde você deseja despejar o arquivo (compartilhamento de rede ou local).

Chewy
fonte