none
Executar BCP RRS feed

  • 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

    terça-feira, 26 de fevereiro de 2013 15:46

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
    • Não Sugerido como Resposta José Diz quarta-feira, 10 de abril de 2019 20:48
    • Marcado como Resposta José Diz quarta-feira, 10 de abril de 2019 20:48
    quarta-feira, 27 de fevereiro de 2013 10:54

Todas as Respostas

  • dralves,

    Antes do dbo, falou especificar a base que vc está usando para consulta.

    Acredito que seja isso.

    Espero ter ajudado.

    []'s

    terça-feira, 26 de fevereiro de 2013 16:58
  • Logan,

    coloquei mais não funcionou.

    bcp "SELECT * FROM BD_DW_Lider.dbo.DW_Arrecadacao"  queryout c:\dados.txt -T -c


    Daniel

    terça-feira, 26 de fevereiro de 2013 17:41
  • dralves,

    Uma pergunta, como vc está tentando executar o bcp?

    Vc está entrando via prompt de comando (cmd)?

    terça-feira, 26 de fevereiro de 2013 19:04
  • Estou executando via studio management no sql 2008 r2.

    Daniel

    quarta-feira, 27 de fevereiro de 2013 00:24
  • 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
    • Não Sugerido como Resposta José Diz quarta-feira, 10 de abril de 2019 20:48
    • Marcado como Resposta José Diz quarta-feira, 10 de abril de 2019 20:48
    quarta-feira, 27 de fevereiro de 2013 10:54
  • 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

    quarta-feira, 27 de fevereiro de 2013 11:21
    Moderador
  • 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]

    quarta-feira, 27 de fevereiro de 2013 14:39
  • Pois é, eu não cheguei a comentar isso imaginando que ele está fazendo via SSMS por não ter acesso direto ao servidor de banco de dados.

    Caso tenha, aí com certeza, o ideal é executar diretamente no servidor via prompt de comando.

    quarta-feira, 27 de fevereiro de 2013 14:48