Usuário com melhor resposta
Executar BCP

Pergunta
-
Amigos,
estou querendo executar um bcp e não estou conseguindo. O erro que está aparecendo é:
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'queryout'.O comando é: bcp "SELECT * FROM dbo.DW_Arrecadacao" queryout c:\dados.txt -T -c
Poderiam me ajudar.
Daniel
Respostas
-
Então dralves,
O bcp não pode ser executado via SSMS, pois ele é um executável dentro do SQL Server.
Para fazer isso, você deve habilitar o xp_cmdshell:
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE
E após isso, executar o seu comando da seguinte forma:
exec xp_cmdshell 'bcp "select * from Banco.dbo.Tabela" queryout "C:\temp\Query.csv" -c -T'
Lembrando que o arquivo resultante estará no diretório do servidor, não na máquina onde vc estará executando.
Não sei qual a tua necessidade, mas ao invés de usar o xp_cmdshell (o qual eu recomendo desabilitar depois de executado o processo), use o wizard de exportação de dados do SSMS:
Clique com o botão direito na base, vá em Tasks e Export Data.
Após, basta seguir o wizard, passar a consulta e mandar gerar o arquivo. No final, ele estará na tua máquina.
Espero ter ajudado.
[]'s
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 27 de fevereiro de 2013 14:35
Todas as Respostas
-
-
-
-
-
Então dralves,
O bcp não pode ser executado via SSMS, pois ele é um executável dentro do SQL Server.
Para fazer isso, você deve habilitar o xp_cmdshell:
EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE
E após isso, executar o seu comando da seguinte forma:
exec xp_cmdshell 'bcp "select * from Banco.dbo.Tabela" queryout "C:\temp\Query.csv" -c -T'
Lembrando que o arquivo resultante estará no diretório do servidor, não na máquina onde vc estará executando.
Não sei qual a tua necessidade, mas ao invés de usar o xp_cmdshell (o qual eu recomendo desabilitar depois de executado o processo), use o wizard de exportação de dados do SSMS:
Clique com o botão direito na base, vá em Tasks e Export Data.
Após, basta seguir o wizard, passar a consulta e mandar gerar o arquivo. No final, ele estará na tua máquina.
Espero ter ajudado.
[]'s
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 27 de fevereiro de 2013 14:35
-
Loga,
Só lembrando de uma opção que poucas pessoas lembram (Eu inclusive), o proprio SSMS consegue exportar o Result Set de uma query para um arquivo txt, basta marcar a opção abaixo.
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
ITIL V3 Foundation
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com -
Alves,
Concordo com as sugestões e observações dos amigos, mas se realmente deseja utilizar o BCP, uma possibilidade seria que você utilize o BCP diretamente em prompt-de-comando.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-