Trigger pra campos não atualizados
20/03/2006
0
Amigos, tenho um cadastro de produtos, e após rodar um update, alguns itens não têm seu valor atualizado. Gostaria de saber a maneira mais fácil de fazer um trigger, ou gerar uma tabela temporária que me dê os produtos que não foram alterados (Também pode ser os que foram alterados) para que eu possa identificá-los.
Abraços.
Christiano
Abraços.
Christiano
Chriskaka
Curtir tópico
+ 0
Responder
Posts
09/04/2006
Wagnerbianchi
Olá Chris,
Bom, vamos primeiro aos conceitos que estão implicitos em operações como INSERT, DELET e UPDATE.
Quando um registro é alcançado pela instrução DELETE, apenas é apagado do banco a sua referência, pois a engine do SGBD trata isso de forma que se você fizer uma consulta à tabela DELETED (temporária, só permanece na memória até o fim da conexão atual), conseguirá visualizar os elementos/tuplas/registros afetados com o comando.
Assim, da mesma forma, acontece com o INSERT, que é armazenado em uma tabela temporária chamda INSERTED.
Já a instrução UPDATE é diferente, pois este comando é na verdade um DELETE seguido por um INSERT. Quando há um update, os elementos antes da declaração serão guardados na tabela temporária DELETED e os novos valores serão colocados na tabela INSERTED.
No seu caso, querendo saber quais valores foram realmente atualizados, faça uma contagem, após atualizar, dos registros que foram atualizados pegando os dados na tabela temporária INSERTED:
QQ coisa, poste!!
DEUS Abençõe...[/code]
Bom, vamos primeiro aos conceitos que estão implicitos em operações como INSERT, DELET e UPDATE.
Quando um registro é alcançado pela instrução DELETE, apenas é apagado do banco a sua referência, pois a engine do SGBD trata isso de forma que se você fizer uma consulta à tabela DELETED (temporária, só permanece na memória até o fim da conexão atual), conseguirá visualizar os elementos/tuplas/registros afetados com o comando.
Assim, da mesma forma, acontece com o INSERT, que é armazenado em uma tabela temporária chamda INSERTED.
Já a instrução UPDATE é diferente, pois este comando é na verdade um DELETE seguido por um INSERT. Quando há um update, os elementos antes da declaração serão guardados na tabela temporária DELETED e os novos valores serão colocados na tabela INSERTED.
No seu caso, querendo saber quais valores foram realmente atualizados, faça uma contagem, após atualizar, dos registros que foram atualizados pegando os dados na tabela temporária INSERTED:
SELECT * FROM INSERTED
QQ coisa, poste!!
DEUS Abençõe...[/code]
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)