Caso a sequência de comando contenha mais de um comando, o bloco de comandos deve vir separado pelos delimitadores BEGIN e END, seguindo o padrão a seguir:
BEGIN
Comando 1
Comando 2
Comando N
END
Vamos ver e analisar um exemplo de uma trigger que tem por objetivo identificar casos em que o salário de um funcionário é maior que o salário do respectivo chefe e executando um procedimento armazenado que poderia, por exemplo, enviar um e-mail alertando alguém sobre essa questão.
Atenção: numeramos as linhas abaixo apenas para posteriormente descrever o que cada uma delas significa. Na prática, essa numeração não existe.
1. Define que está sendo criada uma trigger de nome Violacao_Salarial. Logo, podemos concluir que essa trigger fará alguma ação quando uma regra de violação salarial acontecer.
2. Informa que a trigger será executada antes (before) dos comandos de inserção de registros (insert) ou antes da atualização (update) dos campos Salario e/ou CPF_Supervisor. São esses os campos monitorados, uma atualização em outros campos não executará a trigger.
3. Define o nome da tabela a ser monitorada.
4. Início do miniprograma que será executado, o caso o miniprograma diz que “para cada campo” (Salario ou CPF_Supervisor)...
5. Indica que um ou mais comandos em série participarão da Trigger. Esta linha indica o início dos comandos.
6. Continuação do miniprograma: “...quando o novo salário que está querendo ser atualizado for maior que o salário do funcionário cujo CPF for igual ao CPF do supervisor deste (ou seja, o salário do chefe dele)...”
7. Última linha do miniprograma: “...deve-se executar o procedimento armazenado d nome ‘Informar_Supervisor’, com os parâmetros ‘CPF do Supervisor’ e ‘novo CPF a ser inserido/atualizado’”. Desta forma, provavelmente a storage procedure irá enviar um e-mail para o chefe da pessoa, informando que o salário dela é maior que a do próprio chefe.
8. Esta linha indica o término dos comandos da trigger, ela conclui o que foi iniciado na linha 5.