Questão de Banco de Dados — Gatilhos (Triggers) — CESPE / CEBRASPE 2026
Banco de Dados›Gatilhos (Triggers)
Código
ce227871
Banca
CESPE / CEBRASPE
Órgão
SEFAZ-PR
Ano
2026
Nível
Médio
Cargo
Agente Fazendário Estadual - Função: Profissional de Tecnologia da Informação
Triggers são um mecanismo fundamental para que se garanta a integridade dos dados e a consistência das transações. Eles são uma forma de controle de fluxo dentro de uma base de dados.Em relação aos tipos e modos de execução de triggers em sistemas de gerenciamento de bancos de dados relacionais, assinale a opção correta.
ATriggers do tipo AFTER STATEMENT são executados antes que qualquer modificação de linha seja efetivada no banco de dados, o que permite impedir a execução do comando.
BTriggers definidos com a cláusula BEFORE são executados após a conclusão do evento que as dispara, podendo modificar os dados já persistidos na tabela.
CUm trigger definido com FOR EACH STATEMENT é disparado uma vez para cada linha afetada por um comando INSERT, UPDATE ou DELETE.
DTriggers do tipo AFTER ROW podem acessar os valores antigos e novos de cada linha modificada, normalmente por meio das variáveis de transição OLD e NEW.
ETriggers do tipo BEFORE STATEMENT são executados após o término da transação que contém o comando de modificação de dados.
Revelar gabarito e comentário▾
GabaritoD — Triggers do tipo AFTER ROW podem acessar os valores antigos e novos de cada linha modificada, normalmente por meio das variáveis de transição OLD e NEW.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Gatilhos (Triggers) em bancos de dados relacionais
Gabarito: letra D. Triggers do tipo AFTER ROW executam após a modificação de cada linha e permitem acessar os valores antigos e novos por meio das variáveis de transição OLD e NEW — exatamente o que afirma a alternativa. Esse é o comportamento padrão definido na especificação SQL e em SGBDs como Oracle, PostgreSQL, MySQL e outros.
A questão testa o conhecimento dos tipos e modos de execução de triggers. É essencial dominar as combinações: BEFORE/AFTER (momento da execução em relação ao evento) e FOR EACH ROW/STATEMENT (granularidade). A pegadinha clássica é inverter essas características.
Alternativa A — ❌ Incorreta
Triggers AFTER STATEMENT executam após a execução completa do comando (INSERT, UPDATE, DELETE), não antes. Além disso, são executados uma única vez por comando, não por linha. A alternativa troca o momento e a granularidade.
Alternativa B — ❌ Incorreta
Triggers definidos como BEFORE executam antes da conclusão do evento, permitindo modificar dados antes da persistência ou até impedir a operação. A alternativa inverte o momento: afirma que ocorre após o evento.
Alternativa C — ❌ Incorreta
FOR EACH STATEMENT dispara o trigger uma vez para o comando inteiro, independentemente do número de linhas afetadas. Quem dispara por linha é FOR EACH ROW. A alternativa confunde os dois modos.
Alternativa D — ✅ Correta ⟵ GABARITO
Triggers AFTER ROW são executados após cada linha ser modificada pelo comando. Eles podem acessar os valores anteriores (OLD) e posteriores (NEW) da linha afetada, usando variáveis de transição como OLD.nome_coluna e NEW.nome_coluna. Essa é a definição correta e amplamente implementada.
Alternativa E — ❌ Incorreta
Triggers BEFORE STATEMENT são executados antes da execução do comando, não após o término da transação. A transação pode conter vários comandos e o trigger é disparado antes do primeiro deles, não no fim.
NÃO CAIA NESSA!
A banca explora a troca entre BEFORE e AFTER, e entre ROW e STATEMENT. Memorize: BEFORE = antes do evento; AFTER = após o evento; ROW = por linha; STATEMENT = por comando. Essa combinação é a chave para acertar.