none
Executar Trigger em x tempo RRS feed

  • Pergunta

  • Olá pessoal,

    Bom, estou tentando criar uma trigger que rode assim que for inserido um valor na tabela, porém estou com dificuldade. Seria mais ou menos assim:

    create trigger Tempo on tbltempo AFTER INSERT
    AS
    --ESPERE 30 segundos
    delete tbltempo
    --ESPERE 10 SEGUNDOS
    insert into tbltempo (nome) values ('teste')
    --ESPERE 2 SEGUNDOS
    xp_cmdshell 'shutdown -r -t 10'

    Porém não pode ser com o TIME pois não tem uma hora especifica, nem com o WAITFOR DELAY pois ele trava o SQL enquanto esta esperando o tempo..

    Alguma sugestão?

    quinta-feira, 4 de julho de 2013 00:33

Todas as Respostas

  • Rafa,

    Você poderia colocar tudo numa procedure

    ex.:

    begin try

    insert into tbltempo ...

    waitfor delay ...

    delete tbltempo

    waitfor delay ...

    ...

    end try

    begin catch

    raiserror (N'putz não sei por que deu erro', 10, 1)

    end catch

    quinta-feira, 4 de julho de 2013 17:23
  • Rafa,

    As triggers possuem contexto transacionais em relação a ação que a disparou, se esta trigger de inser levar 42 segundos, cada insert de sua tabela levará 42 segundos! Ou seja, não é feito de forma assincrona.


    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
    Email: fabrizzio.antoniaci@gmail.com

    quinta-feira, 4 de julho de 2013 17:41
    Moderador