locked
Exportação automática de dados no SQL Server 2005 RRS feed

  • Pergunta

  • Pessoal,

    Bom dia!

    Estou precisando de uma ajuda no seguinte ponto: Preciso criar um Job no SQL Server 2005 para exportar todos os dados de uma tabela específica para um arquivo texto diariamente.

    Alguém pode me ajudar?

    Att,
    Hebert Alves
    segunda-feira, 11 de maio de 2009 13:19

Respostas

  • Herbert,

    Além do BCP e SSIS outra possibilidade seria utilizar a ferramenta de prompt-de-comando SQLCMD e agendar a execução desta tarefa.

    O que você pretende fazer?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 11 de maio de 2009 17:39
    Moderador
  • ola Herbert

    BCP
    no prompt do DOS

    bcp "SELECT * FROM AdventureWorks.Sales.Currency" queryout c

    :\teste.txt -S SERVIDOR -T -c

    Voce poderá agendar no SQL AGENT p/ executar por xp_cmdshell, ou na propria task do windows o comando acima.

    SSIS
    é mais complicado para postar, mas de uma olhada neste linK
    ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/extran9/html/d264ea14-4216-4142-9437-c5ec52996917.htm

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 11 de maio de 2009 20:18
    Moderador
  • Olá pessoal.

    Somente para esclarecer.

    Consegui resolver o problema utilizando BCP.

    Neia, respondendo às perguntas: Utilizo Windows Server 2003 e SQL Server 2005 (versão completa, ñ é Express). Preciso do arquivo em ".txt" mesmo porque é uma rotina padrão para envio ao meu cliente externo.

    - O comando está rodando num ".bat" conforme abaixo:
    bcp "consulta" queryout "C:\"%date:~10,4%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%%time:~6,2%".txt" -S Servidor -U Login -P Senha -t "|" -T -c >> "C:\_Logs\"%date:~10,4%%date:~4,2%%date:~7,2%"_export.log"

    Tive que complemantar com umas "muletas" para colocar o nome do arquivo no formato que eu precisava. no final eu salvo o histórico num arquivo ".log" para acompanhar a execução.

    Agradeço a todos que me ajudaram a resolver o meu problema.

    Att,
    Hebert Alves
    quarta-feira, 20 de maio de 2009 20:59
  • Hebert,

    Todos são processos altamente confiáveis e seguros, lógicamente vai depender da forma que você esta modelando e criando este processo.

    Em relação aos recursos e facilidades utilizar o SSIS com certeza você terá muitas coisa para trabalhar sobre o processo, por outro lado os comandos BCP e SQLCMD são muito simples, práticos mas dependem exclusivamente do uso de prompt de comando.

    Para utilizar em conjunto com um JOB eu particularmente prefiro trabalhar com os comandos BCP ou SQLCMD.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 12 de maio de 2009 14:36
    Moderador

Todas as Respostas

  • Ola Herbert,

    Voce pode usar o BCP ou o SSIS (antigo DTS do 2000)

    att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 11 de maio de 2009 13:31
    Moderador
  • Herbert,

    Além do BCP e SSIS outra possibilidade seria utilizar a ferramenta de prompt-de-comando SQLCMD e agendar a execução desta tarefa.

    O que você pretende fazer?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 11 de maio de 2009 17:39
    Moderador
  • Pessoal,

    Desculpem a minha ignorância, li um pouco sobre estes serviços do SQL Server mas não consegui entender o funcionamento destes.

    Qual serviço é mais confiável? Como eu faço para criar o Job para executar o Export através destes pacotes?

    Desde já agradeço!

    Att,
    Hebert Alves

    segunda-feira, 11 de maio de 2009 20:07
  • ola Herbert

    BCP
    no prompt do DOS

    bcp "SELECT * FROM AdventureWorks.Sales.Currency" queryout c

    :\teste.txt -S SERVIDOR -T -c

    Voce poderá agendar no SQL AGENT p/ executar por xp_cmdshell, ou na propria task do windows o comando acima.

    SSIS
    é mais complicado para postar, mas de uma olhada neste linK
    ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/extran9/html/d264ea14-4216-4142-9437-c5ec52996917.htm

    Att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 11 de maio de 2009 20:18
    Moderador
  • Hebert,

    Todos são processos altamente confiáveis e seguros, lógicamente vai depender da forma que você esta modelando e criando este processo.

    Em relação aos recursos e facilidades utilizar o SSIS com certeza você terá muitas coisa para trabalhar sobre o processo, por outro lado os comandos BCP e SQLCMD são muito simples, práticos mas dependem exclusivamente do uso de prompt de comando.

    Para utilizar em conjunto com um JOB eu particularmente prefiro trabalhar com os comandos BCP ou SQLCMD.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 12 de maio de 2009 14:36
    Moderador
  • Amigo, em primeiro lugar qual versao do SQL 2005 que vc está usando e qual SO?
    Pois o SQL Express (o gratuito) nao tem muito recursos não, e se o SO (Sistema Operacional) que vc está usando é o XP vc nao tera muito sucesso com jobs. Pois jobs rodam automaticamente somente no Windows 2003 server.

    Outra perguntar, nao seria mais fácil vc criar jobs para fazer backup de tempos em tempos do teu log de transaçoes? (caso seja o objetivo)

    -----
    Acredito que será mais facil vc exportar esta tabela para .xls pois ja tem o driver no SQL para isso (mas escolha ele na opçao Destination, outra coisa o arquivo .xls tem que estar criado antes pode ser antes(o arquivo pode estar vazio, ñ tm problem)). Caso vc queira fazer para .txt você tera que criar um DSN para isso (Via driver ODBC).
    se vc fizer para .xls vc pode salvar esta rotina e criar um job, para executalo de tempos em tempos.

    espero ter ajudado!

    Se te comfundi muito pode "chingar" :-)
    quinta-feira, 14 de maio de 2009 00:24
  • Olá pessoal.

    Somente para esclarecer.

    Consegui resolver o problema utilizando BCP.

    Neia, respondendo às perguntas: Utilizo Windows Server 2003 e SQL Server 2005 (versão completa, ñ é Express). Preciso do arquivo em ".txt" mesmo porque é uma rotina padrão para envio ao meu cliente externo.

    - O comando está rodando num ".bat" conforme abaixo:
    bcp "consulta" queryout "C:\"%date:~10,4%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2%%time:~6,2%".txt" -S Servidor -U Login -P Senha -t "|" -T -c >> "C:\_Logs\"%date:~10,4%%date:~4,2%%date:~7,2%"_export.log"

    Tive que complemantar com umas "muletas" para colocar o nome do arquivo no formato que eu precisava. no final eu salvo o histórico num arquivo ".log" para acompanhar a execução.

    Agradeço a todos que me ajudaram a resolver o meu problema.

    Att,
    Hebert Alves
    quarta-feira, 20 de maio de 2009 20:59
  • Hebert,

    Obrigado pelo retorno.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 21 de maio de 2009 13:28
    Moderador
  • Ola Herbert,

    Obrigado pelo retorno, se possível classifique a resposta.

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    quinta-feira, 21 de maio de 2009 19:40
    Moderador