Pular para o conteúdo principal

Questão de Banco de Dados — Gatilhos (Triggers) — CESPE / CEBRASPE 2026

Banco de DadosGatilhos (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.
  1. 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.
  2. 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.
  3. CUm trigger definido com FOR EACH STATEMENT é disparado uma vez para cada linha afetada por um comando INSERT, UPDATE ou DELETE.
  4. 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.
  5. 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.

Gabarito: letra D.

Link permanente: /questoes/ce227871