none
sql server 2005 - dúvida em, DELETED TABLE e INSERTED TABLE RRS feed

  • Pergunta

  • Oi galera

    Acho que entendi conceitualmente o objetivo das duas tabelas, só quero confirmar se o meu entendimento está correto e colar uma dúvida.

    sumponhamos que eu tenha a tabela "TAB1" com registros A, B e C

    ao ser executado uma trigger associado ao um DELETEi exclui o registro A e B da TAB1, o sql server copia para a tabela DELETED os registros A e B antes da exclusão. Pois bem, da mesma forma, um outro trigger associado INSERT na TAB1 associado a INSERT, quando execudado inseri um novo registro "D" por ex na TAB1., o sql server copia o registro "D" para a tabela INSERTED,correto?

    agora vem a dúvida. Essas duas tabelas DELETED e INSERTED, pelo que estão entendendo, é uma espécie de backup de modo que ao fazer um Roolback é utilizado esses dados para restauração do estatus quo anterior a execução das store procedure ou trigger. Se for isso, como fica o caso do registtro na tabela INSERTED?, não ficou claro para mim esta parte dos registros inseridos na tabela INSERTED..

    grato pela esclarecimento que puderam dar.

    takeo

    segunda-feira, 30 de outubro de 2006 17:12

Todas as Respostas

  • takeo ....  quando se fala de inserted e deleted elas somente são utilizadas para montar um logica para poder referenciar os valor que foram inseridos ou deletados e alterados... mas não hora de fazer o rollback não são elas que entram em ação e sim o procedimento normal de rollback do proprio SQL Server... porque quando vc faz um delete ele deleta a linha da pagina de dados que esta na memoria.... de fizer o rollback essa pagina não é gravada em disco.... as tabelas inserted e deleted não entram nesse processo

    não sei se ficou claro ... qualquer dúvida retorne

    abs

     

    segunda-feira, 30 de outubro de 2006 17:40
  • Takeo,

    Tanto a table Deleted como também a Inserted são utilizados pelo Trigger de acordo com o tipo de transação realizado, na verdade estas tables não tem função de Rollback.

    Estas duas tables são fazem parte da estrutura utilizada pela trigger para que ele possa fazer o gatilho dos dados necessários para enviar para outra table associado a ele.

    segunda-feira, 30 de outubro de 2006 17:43
  • Takeo boa tarde!

    Essas tabelas somente existirão em tempo de execução da TRIGGER, ou seja, elas poderão serem usadas apenas no código da trigger.

    Caso você necessite de uma rotina que use os registros excluídos, serão tratados na "DELETED" e em caso de inserção na "INSERTED", só para enfatizar... ambos na trigger.

     

    segunda-feira, 30 de outubro de 2006 17:44
  • Pessoal

    grato pelas explicações que ajudam refazer os meus conceitos. Será que podem indicar algum artigo ou tutorial para que eu possa aprofundar neste tópico?, pois o livro que estou estudando dá apenas uma pincielada.

    takeo

    terça-feira, 31 de outubro de 2006 13:02
  • terça-feira, 31 de outubro de 2006 13:26