Trigger… recurso injustiçado! Nos últimos anos tenho percebido uma certa resistência ao uso das triggers. Mas o fato é que este recurso pode ser fantástico se usado nas situações certas.
O que é uma trigger?
Trigger são comandos armazenados no banco de dados, associados a uma tabela e executados automaticamente em resposta a um comando de insert, delete e update.
Tipos de trigger
Uma trigger pode ser de 3 tipos diferentes FOR, AFTER o INSTEAD OF
O tipo de trigger determina o momento em que ela será executada.
- FOR é o valor padrão e indica que a trigger será executada junto com o comando de insert, delete ou update que a disparou.
- AFTER faz com que a trigger seja executada após a ação que a gerou ser concluída.
- INSTEAD OF faz com que o trigger seja executado no lugar da ação que o gerou.
Qual é o problema que elas resolvem?
Triggers são usadas em validações, logs, exclusões lógicas, execução de regras de negócio entre várias outras situações.
Dica da Dani… Cuidado com o código escrito nas triggers! Você escreveu muitas linhas de código? Então veja se a sua ideia está correta. Triggers são feitas para resolver problemas complexos de forma simples.
Sintaxe para criar uma trigger
CREATE TRIGGER Nome da Trigger ON Nome da tabela [FOR/AFTER/INSTEAD OF] [INSERT/UPDATE/DELETE] AS --Código da Trigger
A sintaxe é bem simples se você entendeu o que é uma trigger. E pode ser lida da seguinte forma:
Crie uma trigger como o nome XXXX associada a tabela ABC executada no momento FOR/AFTER/INSTEAD OF em resposta a um comando INSERT/UPDATE/DELETE.
No exemplo de abaixo uma mensagem é exibida sempre que forem incluídos ou alterados dados da tabela Customer.
CREATE TRIGGER trgLembrete ON Sales.Customer AFTER INSERT, UPDATE AS RAISERROR (‘Notifique a equipe responsável!’, 16, 10); GO
Com a trigger criada, é só testar a alteração de um registro:
--Testar a trigger atualizando um registro na tabela UPDATE [Sales].[Customer] Set [ModifiedDate] = getdate() WHERE CustomerID =1
Conclusão
Este é um recurso pouco usado porque dá um certo susto nos desenvolvedores. Mas você é diferente e tenho certeza que utilizará as triggers com sucesso por que você fará a análise correta antes de criar triggers e criará códigos simples e bem testados.
Este post possui somente uma introdução, mas se vc quiser saber mais sobre este assunto, eu recomendo dois links:
Documentação oficial da Microsoft.
Downloads e links