Exportar e importar dados do SQL Server com linha de comando (BCP)

 Bom amigos … todos conhecem o SQL Server e todas as suas ferramentas gráficas não é mesmo ????

 Pois existe uma maneira rápida, fácil e pratica de exportar (dump) e importar (restore) de uma base de dados SQL Server sem usar essas pesadas ferramentas.

O BCP (Bulk Copy Program) nos da à possibilidade de exportação e importação de dados através de uma simples linha de comando.

Para facilitar a vida é mais pratico criar arquivos bat que segue abaixo:

 

Exportanto

 

Bcp_exp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA OUT CAMINHO\tabela.bcp –o CAMINHO\tabela.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 OUT CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

Muito importante lembrar que existem problemas de versão, ou seja, exportação e importação entre Sql Server 2000 e 2005. Sendo assim para que não existam problemas, usamos o parâmetro –c

 

Importando

 

Bcp_imp.bat

 

Set Server=IP

Set DbUser=sa

Set DbPwd=SENHA

 

Bcp BD..TABELA IN CAMINHO\tabela.bcp –o CAMINHO\tabela.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

Bcp BD..TABELA2 IN CAMINHO\tabela2.bcp –o CAMINHO\tabela2.log_imp –S%Server% -U%DbUser% -P%DbPwd% -c

 

pause

 

PS: Substitua os valores em azul negrito pelos seus dados

E era isso ….

Boa Sorte !!!

 

Kenia Milene

21 thoughts on “Exportar e importar dados do SQL Server com linha de comando (BCP)

  1. Philips,canon,olympus,garmin,motorola,kenwood,icon, vertexstandard,yaesu,importadora,exportadora,s.a,ciudad del este,py, paraguay,paraguai,fronteira,foz do iguacu,pr,eletronicos,radios,sons,home theater,Electrodomesticos,
    Repuestos electrodomesticos, Servicio tecnico, Artefactos para el hogar, Refrigeracion,Toda Amarica Latina , Argentina , Bolivia , Chile,Colombia,Costa Rica, Cuba, Ecuador , El Salvador , Espanha , Guatemala , Honduras , Mexico , Nicaragua , Panama , Paraguay , Perú , Puerto Rico , República Dominicana , Uruguay , Venezuela,importacao,exportacao

    (595 61)501-194

    (595 61 )514-722

  2. Informação muito útil. Obrigado…

    faltou especificar somente que deve habilitar o XP_CMDSHELL….
    EXEC sp_configure ‘Show Advanced options’, 1
    reconfigure

    sp_configure ‘xp_CMDSHELL’,1
    RECONFIGURE

    Para executar:
    exec xp_cmdshell ‘BCP…….etc’.

  3. Olá Kenia, tudo bem? Ótimo artigo. Mas preciso da ajuda de uma DBA como você… Tenho dois servidores SQL 2008 Express em lugares distintos e preciso atualizar uma base de dados de um para o outro. Não tenho como usar replicação nem espelhamento nem ssis pois a versão express não possue. Criar rotinas de backup e restore através de scripts de prompt usando o OSQL pode até ajudar mas não sei se consigo enviar o arquivo direto para o outro SQL … Quero saber se é possível através do BCP criar uma rotina de se conecta ao dois SQL e faça a importação de um para o outro. Agradeço muito pela sua atenção e ajuda se for possível. Através do OSQL consigo criar scripts (.bat) para fazer backup e restore, seria possível usar import e export?? Att. Alex.

    • Ola Alex,

      tudo bem ????

      Se a rede permitir, ou seja, se existir uma rota que permita a comunicacao entre os servidores, é simples:
      1 – faca o export no servidor 1
      2 – do servidor 1 mesmo vc coloca a linha de import, mas com o ip do servidor 2, ele fara o import normalmente

      Faça o teste e me de um retorno ….

      Abraços
      Kenia

  4. Olá Kenia, criei um arquivo .bat com o seguinte conteúdo:

    Set Server=xx.xxx.x.x
    Set DbUser=xxxxxxx
    Set DbPwd=*********

    Bcp LotoSIMP_SalesByGame OUT \erp\tabela.bcp –o \erp\tabela.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

    pause

    Está apresentando o seguinte erro no parâmetro “-o”:

    Unknown argment ‘¹o’ on command line.

    Você poderia me ajudar a resolvê-lo?

    Muito obrigado!

    • Pode deixar, Kenia!

      Consegui resolver, estava faltando o endereço do servidor no caminho:

      Set Server=xx.xxx.x.x
      Set DbUser=xxxxxxx
      Set DbPwd=*********

      Bcp LotoSIMP_SalesByGame OUT \\%Server%\erp\tabela.bcp –o \erp\tabela.log_exp –S%Server% -U%DbUser% -P%DbPwd% -c

      pause

      Muito obrigado pela dica!

  5. Parabéns pela dica me ajudou em muito antes trafegava dados em backup do banco por causa de algumas tabelas ,agora trafego os dados em menos de 10 mega …muito obrigado pela dica

  6. Eu estou tentando exportar o resultado de uma procedure para um arquivo xls. Mas esses comandos não são o que eu quero.
    Eu gostaria de saber se é possível pegar os dados desta SP e inserir em uma tabela temporária, para depois exportar os dados desta tabela para um xls?

    Alguém pode dar uma luz?
    Obrigado.

  7. Muito bom! Consegui realizar a operação sem problemas, com alguns erros nas primeiras tentativas, mas usei o padrão abaixo que funcionou muito bem.

    “C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe” .. OUT . -o -S -U -P -c

    Nem precisei executar as procedures informadas pelo Wesley do Post/Comentário de 17/06/2010. Mesmo se “desligasse” (valor zero) funcionou.

    É possível gerar para todas as tabelas da base?
    E não há uma forma de exportar as DDLs (CREATE TABLE, etc)?

    • Ops! O comando virou TAG do HTML. O comando que me refiro foi:

      “C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe” <DATABASE_NAME>.<ESQUEMA>.<NOME_TABELA_OBJETO> OUT <NOME_ARQUIVO_DADOS>.<EXTENSAO_ARQUIVO_BCP_SEPARADO_POR_TABULACAO> -o <NOME_ARQUIVO_LOG> -S<IP_HOST_SERVIDOR_MSSQL> -U<USUARIO_MSSQL> -P<SENHA_USUARIO> -c

  8. Olá Kenia, tudo bem?
    Sou iniciante em banco …
    Estava aqui procurando sobre volumetria de base de dados, eis que me deparo com seu blog, que por sinal gostei bastante.
    Maaaais, eu precisava saber volumetria para o SQL.

    Poderia me ajudar..

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s