Exportar o resultado da pesquisa para.ficheiro csv no servidor SQL 2008

Como posso exportar um resultado de pesquisa para A.ficheiro csv no servidor SQL 2008?

Author: Greg, 2010-07-03

12 answers

  1. Open SQL Server Management Studio
  2. Ir para Ferramentas > Opções > pesquisa Resultados > servidor SQL > resultados ao texto
  3. À direita, há uma gota. baixo chamado formato de saída
  4. Escolha a vírgula delimitada e carregue em OK

Aqui está uma versão completa dessa imagem, abaixo

enter image description here

Isto irá mostrar os resultados da sua pesquisa como texto delimitado por vírgulas.

Para gravar os resultados de uma consulta num ficheiro: Ctrl + Shift + F

 151
Author: 8kb, 2014-07-22 05:22:13
Eu sei que isto é um pouco velho, mas esta é uma maneira muito mais fácil...
  1. Execute a sua pesquisa com as opções predefinidas (coloca os resultados no formato da grelha, se os seus não estiverem no formato da grelha, veja em baixo)

  2. Clique com o botão direito nos resultados da grade e clique em "Salvar os resultados como" e salvá-lo.

Se os seus resultados não estiverem no formato da grelha, carregue com o botão direito onde escreve a pesquisa, passe "resultados para" e carregue em "resultados para a grelha"

Boa Sorte!
 121
Author: Ricketts, 2012-05-16 20:00:32

Podes usar o PowerShell

$AttachmentPath = "CV File location"
$QueryFmt= "Query"

Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $QueryFmt | Export-CSV $AttachmentPath
 39
Author: N.S, 2014-03-21 15:02:11

Se a base de dados em questão é local, o seguinte é provavelmente a forma mais robusta de exportar um resultado de pesquisa para um ficheiro CSV (isto é, dando-lhe mais controlo).

  1. copia a consulta.
  2. no Explorador de objectos, carregue com o botão direito na base de dados em questão.
  3. Seleccione "Tarefas" > " Exportar Dados..."
  4. Configure a sua fonte de dados e carregue em "Next".
  5. escolha" Flat File "ou" Microsoft Excel " como destino.
  6. indique a localização de um ficheiro.
  7. se a trabalhar com um ficheiro plano, configure como desejar. Se trabalhar com o Microsoft Excel, selecione "Excel 2007" (versões anteriores têm um limite de linha em 64k)
  8. seleccione "escrever uma pesquisa para indicar os dados a transferir"
  9. colar a consulta do Passo 1.
  10. Carregue em Seguinte > > > rever mappings > > carregue em Seguinte > > Seleccione "Executar imediatamente" > > carregue em "terminar" duas vezes.
Depois de ter passado por este processo exaustivamente, achei o seguinte o melhor. opção

Programa PowerShell

$dbname = "**YOUR_DB_NAME_WITHOUT_STARS**"
$AttachmentPath = "c:\\export.csv"
$QueryFmt= @"
**YOUR_QUERY_WITHOUT_STARS**
"@

Invoke-Sqlcmd   -ServerInstance **SERVER_NAME_WITHOUT_STARS** -Database  $dbname -Query $QueryFmt | Export-CSV $AttachmentPath -NoTypeInformation

Executar o 'PowerShell' como administrador

& "c:\path_to_your_ps1_file.ps1"
 13
Author: pimbrouwers, 2017-06-01 14:38:34

Utilizar T-SQL:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]')
SELECT Field1, Field2, Field3 FROM DatabaseName
Mas há um par de ressalvas:
  1. Você precisa ter a Microsoft.AS.OLEDB.12.0 provedor disponível. O fornecedor do Jet 4.0 também vai funcionar, mas é antigo, por isso usei este.

  2. O .O ficheiro CSV já terá de existir. Se você estiver usando cabeçalhos (HDR=YES), Certifique-se de que a primeira linha do .O ficheiro CSV é uma lista delimitada de todos os campos.

 6
Author: Slogmeister Extraordinaire, 2016-06-12 13:34:10

MS Excel - > Data - > Nova Consulta - > da Base de dados ..siga os passos

 5
Author: tichra, 2016-05-11 11:21:54

Baseando-me na resposta de N. S, tenho um programa PowerShell que exporta para um ficheiro CSV com as marcas de aspas à volta do campo e separados por vírgulas e que salta a informação do cabeçalho no ficheiro.

add-pssnapin sqlserverprovidersnapin100
add-pssnapin sqlservercmdletsnapin100

$qry = @"
Select
  *
From
 tablename
"@

Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $qry | convertto-CSV -notype | select -skip 1  > "full path and filename.csv"

As duas primeiras linhas permitem a capacidade de usar o comando invoque-SqlCmd.

 5
Author: BeowulfNode42, 2016-06-12 13:32:55

Usar a técnica native SQL Server Management Studio para exportar para CSV (como o @8kb sugeriu) não funciona se os seus valores contiverem vírgulas, porque o SSMS não muda os valores entre aspas. Uma maneira mais robusta que funcionou para mim é simplesmente copiar os resultados (clique dentro da grade e, em seguida, CTRL-A, CTRL-C) e colá-lo no Excel. Em seguida, Salvar como arquivo CSV do Excel.

 3
Author: Johnny Oshika, 2013-11-27 02:01:57

Podes usar o QueryToDoc (http://www.querytodoc.com ). permite-lhe escrever uma pesquisa numa base de dados SQL e exportar os resultados - depois de escolher o separador - para Excel, Word, HTML ou CSV

 2
Author: Robert, 2012-04-22 19:10:30
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]')
SELECT Field1, Field2, Field3 FROM DatabaseName

Como @Slogmeister extraordinário Citado está correcto.

É preciso ter 1> Ficheiro já presente com colunas 2> é necessário instalar um escritório

Erros detectados

1

Msg 7303, Nível 16, Estado 1, Linha 1 Não é possível inicializar o objecto de fonte de dados do fornecedor OLE DB "Microsoft.AS.OLEDB.12.0 "for linked server"(null)"."

64 pouco http://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_x64.exe

32 bits http://download.microsoft.com/download/f/d/8/fd8c20d8-e38a-48b6-8691-542403b91da1/AccessDatabaseEngine.exe

2

Msg 15281, Nível 16, Estado 1, Linha 1 O servidor SQL bloqueou o acesso à declaração 'OpenRowset / OpenDatasource' do componente 'consultas distribuídas ad Hoc' porque este componente está desligado como parte da segurança configuração deste servidor. Um administrador de sistema pode activar a utilização de 'consultas distribuídas ad Hoc' usando sp_configure. Para mais informações sobre a possibilidade de activar 'consultas distribuídas Ad Hoc', procure 'consultas distribuídas Ad Hoc' em Linha nos livros do servidor SQL.

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 0
RECONFIGURE
GO
 1
Author: sam, 2015-01-12 14:07:07

Se você não quer usar Powershell, esta resposta é uma variação da grande resposta do 8kb. A única diferença é que em vez de selecionar CSV como formato de saída, selecione Tab delimitado. Desta forma, se houver vírgulas em seus dados, ele não vai saltar células no Excel. Além disso, se tiver o delimitador predefinido do Excel configurado para as páginas, poderá simplesmente fazer uma cópia de todos os resultados da pesquisa do SSMS (CTRL-A, CTRL-C) e colar no Excel (não é necessário gravar como um ficheiro e importar para o Excel):

  • In SSMS Go para Ferramentas > Opções > resultados da pesquisa > servidor SQL > resultados para texto
  • mudar o formato de saída na extrema-direita para página delimitada
  • Clique em OK

Agora pode executar a sua pesquisa, depois fazer um CTRL-A para seleccionar todos os resultados, depois o CTRL-C para copiar para a área de transferência, depois mudar para o Excel 2013 (Pode também funcionar em 2007, Não tenho a certeza) e colar -- assumindo que o delimitador predefinido do Excel está configurado como tab.

Imagem do ecrã de Opções de pesquisa do SSMS

 1
Author: TomWalker, 2017-03-16 23:00:54

Sim, todos estes são possíveis quando você tem o acesso direto aos servidores. Mas e se você só tiver acesso ao servidor a partir de um servidor web / aplicação? Bem, a situação era esta connosco há muito tempo e a solução era: exportação do servidor de SQL para CSV.

 0
Author: Jiju Thomas Mathew, 2016-06-12 13:35:52