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 três tipos diferentes: FOR, AFTER e 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 a trigger seja executada no lugar da ação que o gerou.
Qual problema 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 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, tenho certeza que utilizará as triggers com sucesso porque fará a análise correta antes de criar triggers e criará códigos simples e bem testados.
Este artigo possui somente uma introdução, mas se vc quiser saber mais sobre este assunto, eu recomendo dois links: