Blog

Postado em em 22 de agosto de 2022

Trigger em SQL: aplicações, exemplos e boas práticas

Na programação de sistemas, existem diversas ferramentas e soluções que foram pensadas para facilitar a vida dos programadores. Esses recursos devem ser conhecidos para economizar algumas horas e evitar dores de cabeça no processo.

Um deles é a ferramenta de trigger no SQL. Trata-se de um auxílio muito importante para quem gerencia bancos de dados e precisa de agilidade e segurança. Os triggers cumprem diferentes funções, sempre com um impacto positivo.

Ainda assim, é preciso estar atento a boas práticas quando falamos de triggers e de sua aplicação para garantir os melhores resultados. Saiba mais sobre o assunto a seguir.

O que é um trigger em SQL?

Um trigger no SQL é um processo que funciona como gatilho para executar algumas ações automaticamente sempre que uma mudança ocorre no banco de dados

Ou seja, é principalmente uma função voltada para a automação: sempre que uma ação ocorre, o trigger executa outra ação como resposta imediata. 

Contudo, como veremos, a aplicação de triggers vai além da simples automação. É possível utilizar esse procedimento como uma forma de garantir a transparência para o desenvolvimento de um software. 

Como funciona um trigger

Funciona como um mecanismo automático que depende de algum gatilho para disparar. Depende, portanto, de manipulações na tabela. 

Nesse sentido, existem dois tipos principais: o AFTER e o INSTEAD OF.

O AFTER é executado depois do evento que disparou o trigger. Ao passo que o INSTEAD OF executa algo no lugar do evento inicial, quando este é detectado. 

Classes de trigger no SQL

É importante também destacar a divisão entre classes. Há duas principais: o DDL (Data Definition Language) e DML (Data Modification Language).

O DDL lida com funções que alteram a estrutura de uma tabela, como manipulação direta em seu formato de linhas e colunas, e não necessariamente os dados. Eventos de segurança também podem ativar esses triggers.

Ao passo que triggers DML são disparados geralmente quando há uma alteração direta nos dados do banco, como inserção, atualização, exclusão (insert, update ou delete). 

Para que serve o Trigger em SQL e quando usar?

Agora, vamos aprofundar na importância dessas ferramentas.

Uma das funções, como já foi analisado, é a automação: responder a ações que manipulam dados ou a estrutura. 

trigger em sql
Sintaxe do SQL Server. Fonte: https://learn.microsoft.com/pt-br/sql/t-sql/statements/create-trigger-transact-sql?view=sql-server-ver16

Outro propósito importante é facilitar a manutenção, adicionando maior clareza e transparência ao sistema. Por outro lado, também favorece o desempenho da aplicação, uma vez que tira um pouco o peso da própria aplicação e define regras para o BD.

Assim, é possível também evitar que isso seja feito de forma manual, como no caso de atualização de bancos de dados corporativos, por exemplo. A automação dispensa a necessidade de ter humanos executando determinadas tarefas repetitivas e volumosas.

Ademais, um sistema SQL com triggers fica mais fácil para administradores de banco de dados DBA. 

Outra importante finalidade para o uso de triggers é a segurança. Uma vez que é possível definir uma reação a qualquer ação de modificação de dados, torna-se viável garantir uma via de controle mais estrita e sólida.

Ou seja, em muitos casos, os desenvolvedores optam por gerar logs quando mudanças são feitas, o que garante certa transparência. Isso permite controle da integridade dos dados e também favorece as auditorias.

Da mesma forma, quando se quer sincronizar tabelas, garantir atualização automática em diversos pontos, controlar e prevenir transações indevidas feitas por pessoas não autorizadas, os triggers são úteis e poderosos.

Em suma, devem ser usados quando a equipe deseja tornar alguns processos mais ágeis e, ao mesmo tempo, reforçar um pouco a segurança.

Como usar triggers em SQL?

Criar um trigger em SQL é muito simples. Você precisa definir alguns parâmetros fáceis de entender que permitam o funcionamento ideal e correto.

Também é necessário definir a operação que funcionará como evento-gatilho para aquele trigger. 

Para seguir e te ajudar a entender como fazer trigger em banco de dados, entenda melhor a sintaxe no tópico seguinte.

Sintaxe para criação de triggers

Essa é a sintaxe-padrão de um trigger:

CREATE TRIGGER [Nome] 

    ON [Nome_da_tabela] 

    AFTER/BEFORE {[Operação-gatilho]} 

    AS 

    {lógica de comandos}

Ou seja, é até intuitivo. Na primeira linha, você define o nome, de forma livre. Na segunda, deve dizer em qual tabela o trigger vai desempenhar alguma função. Na terceira linha, defina qual é a operação que serve de disparo (inserção, atualização ou deleção). 

Depois, desenvolva os comandos da função.

Exemplos práticos de uso de triggers em SQL

Para ajudar ainda mais na compreensão de como funciona um gatilho no SQL, vamos comentar alguns exemplos práticos.

O mais comum e mais simples de entender, certamente, é o sistema do PDV. Digamos que existam duas tabelas: a de vendas e a de produtos. A de produtos, logicamente, registra todos os itens em estoque e deve sofrer alterações quando há uma venda.

Logo, essa é uma situação perfeita para uma função de gatilho. Sempre que houver uma mudança na tabela de vendas, com um registro de uma nova transação, o trigger será acionado para alterar a tabela de produtos, diminuindo um item daquele produto específico.

Além disso, pode haver também um log para que seja possível controlar melhor todas as vendas posteriormente. Isso é interessante para a segurança e para o próprio controle financeiro.

Da mesma forma, a tabela de fluxo de caixa pode receber novos valores quando há uma venda. Se a venda for parcelada, uma lógica um pouco mais elaborada é capaz de exibir o prazo em que o valor estará de fato disponível.

Esse exemplo é eficiente porque é aplicável para qualquer ponto de venda, que lide com qualquer produto. 

Práticas recomendados para uso de triggers

Quando se fala no uso de gatilhos em banco de dados, é importante ter atenção para alguns aspectos. Assim, evita-se ter que arcar com problemas.

Um deles é: não usar triggers demais, quando não for realmente necessário. Limitar o número de gatilhos por tabela é essencial para manter a organização e evitar uma confusão na gestão deles.

Também é recomendado manter uma boa documentação dessas funções para que a equipe de manutenção não tenha dificuldades. Isso inclui explicar bem seu uso e até mesmo nomeá-los corretamente.

Conclusão

Triggers são uma das ferramentas que ajudam os programadores no desenvolvimento de bancos de dados. São úteis para automação e para a segurança, sendo poderosos para ajudar no controle de auditoria e na manutenção. 

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!