Array
(
)

Trigger pra campos não atualizados

Chriskaka
   - 20 mar 2006

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

Wagnerbianchi
   - 09 abr 2006

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:

#Código

 SELECT * FROM INSERTED 


QQ coisa, poste!!

DEUS Abençõe...[/tagcod]