none
Gerando um arquivo TXT automático RRS feed

  • Pergunta

  • Pessoal,

    Preciso fazer com que uma determinada tabela gere um arquivo TXT, sempre que entrar um dado novo na tabela a mesma gere um arquivo TXT

    Isso é possivel fazer em tempo real, preciso de uma trigger para isso ?

     

     

    domingo, 14 de agosto de 2011 11:49

Respostas

  • Boa Tarde,

    Honestamente eu não creio que essa seja uma boa estratégia. A trigger é síncrona e irá bloquear o acesso até que sua tarefa seja concluída. Isso significa que se o arquivo demorar 10 segundos para gerar o arquivo, o INSERT ficará bloqueado por dez segundos. Imagine só o CAOS se houver usuários simultâneos então ? Como é que fica a geração de arquivos ? E como é que fica nomenclatura do arquivo para evitar sobreposição ? E se por um acaso houver a necessidade de ROLLBACK ? São elementos suficientes para condenar uma implementação dessas.

    Se você tem necessidade de gerar um arquivo eu sugiro que de tempos em tempos (digamos a cada hora), faça um SELECT e gere o arquivo. Se houver a necessidade de gerar um arquivo toda vez que o registro for inserido, não deixe isso a cargo do SQL Server. Use a trigger para mapear as alterações e de tempos em tempos conecte-se no banco e gere todos os arquivos que julgar necessário. Na pior da hipóteses, faça com que sua aplicação gere o arquivo.

    Deixar por conta de um banco de dados esse tipo de necessidade é pedir pra ter problemas (mesmo que seja tecnicamente possível, não é escalável).

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Eder Costa sexta-feira, 19 de agosto de 2011 17:09
    • Marcado como Resposta Eder Costa segunda-feira, 22 de agosto de 2011 17:06
    domingo, 14 de agosto de 2011 19:30

Todas as Respostas

  • Deleted
    domingo, 14 de agosto de 2011 14:15
  • Boa Tarde,

    Honestamente eu não creio que essa seja uma boa estratégia. A trigger é síncrona e irá bloquear o acesso até que sua tarefa seja concluída. Isso significa que se o arquivo demorar 10 segundos para gerar o arquivo, o INSERT ficará bloqueado por dez segundos. Imagine só o CAOS se houver usuários simultâneos então ? Como é que fica a geração de arquivos ? E como é que fica nomenclatura do arquivo para evitar sobreposição ? E se por um acaso houver a necessidade de ROLLBACK ? São elementos suficientes para condenar uma implementação dessas.

    Se você tem necessidade de gerar um arquivo eu sugiro que de tempos em tempos (digamos a cada hora), faça um SELECT e gere o arquivo. Se houver a necessidade de gerar um arquivo toda vez que o registro for inserido, não deixe isso a cargo do SQL Server. Use a trigger para mapear as alterações e de tempos em tempos conecte-se no banco e gere todos os arquivos que julgar necessário. Na pior da hipóteses, faça com que sua aplicação gere o arquivo.

    Deixar por conta de um banco de dados esse tipo de necessidade é pedir pra ter problemas (mesmo que seja tecnicamente possível, não é escalável).

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Eder Costa sexta-feira, 19 de agosto de 2011 17:09
    • Marcado como Resposta Eder Costa segunda-feira, 22 de agosto de 2011 17:06
    domingo, 14 de agosto de 2011 19:30