Pular para o conteúdo principal

Questão de Banco de Dados — Gatilhos (Triggers) — SELECON 2021

Banco de DadosGatilhos (Triggers)
Código
qq685289
Banca
SELECON
Órgão
EMGEPRON
Ano
2021
Nível
Superior
Cargo
Analista de Sistemas (Auditoria)
No contexto dos bancos de dados relacionais SQL, muitas vezes surge a necessidade de se realizar uma determinada ação, de acordo com algum evento que acontecer e é isso que o Trigger viabiliza. No que diz respeito à sintaxe para criação de um trigger, observam-se os parâmetros descritos a seguir.I. NOME DO TRIGGER – identifica o nome da trigger como objeto do banco de dados, devendo seguir as regras básicas de nomenclatura de objetos.II. NOME DA TABELA – identifica o nome da tabela à qual o trigger estará ligado, para ser disparado mediante ações de insert, update ou delete.III. Opção X/Y/Z – escolhida para definir o momento em que o trigger será disparado, onde X representa o valor padrão e faz com o que o gatilho seja disparado junto da ação, Y faz com que o disparo se dê somente após a ação que o gerou ser concluída, e Z faz com que o trigger seja executado no lugar da ação que o gerou.IV. Opção M/N/P – escolhida entre as instruções DML para indicar e informar ao banco qual ação irá disparar o gatilho.Os parâmetros que devem substituir X/Y/Z em III e M/N/P em IV são, respectivamente:
  1. AFOR/AFTER/INSTEAD OF e SELECT/ALTER/DROP
  2. BTO/BEFORE/RATHER THEN e SELECT/ALTER/DROP
  3. CFOR/AFTER/INSTEAD OF e INSERT/UPDATE/DELETE
  4. DTO/BEFORE/RATHER THEN e INSERT/UPDATE/DELETE
Revelar gabarito e comentário

GabaritoC — FOR/AFTER/INSTEAD OF e INSERT/UPDATE/DELETE

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)

Gabarito: letra C. Em SQL, os triggers podem ser disparados FOR (junto com a ação), AFTER (após a ação) ou INSTEAD OF (no lugar da ação), e os eventos DML que os disparam são INSERT, UPDATE e DELETE – exatamente o que a alternativa C apresenta.

A questão cobra a sintaxe básica de criação de triggers: o momento do disparo e as instruções DML que ativam o gatilho. O parâmetro X/Y/Z refere-se ao momento: FOR é o padrão (dispara junto da ação), AFTER dispara após a conclusão da ação, e INSTEAD OF substitui a ação. Já M/N/P são as instruções DML que disparam o trigger: INSERT, UPDATE e DELETE.

Trigger (SQL)
  • 1Momento do disparo
    • FOR (junto com a ação)
    • AFTER (após a ação)
    • INSTEAD OF (no lugar da ação)
  • 2Evento DML
    • INSERT
    • UPDATE
    • DELETE
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Erro em ambas as partes: propõe FOR/AFTER/INSTEAD OF para o momento (que está correto), mas troca as instruções DML por SELECT/ALTER/DROP. SELECT é DQL (Data Query Language), ALTER e DROP são DDL (Data Definition Language). O trigger é disparado por comandos DML, não DDL ou DQL.

Alternativa B — ❌ Incorreta

Apresenta TO/BEFORE/RATHER THAN, que não são termos padrão da sintaxe SQL de triggers. BEFORE é usado em alguns SGBDs, mas a descrição do enunciado (X = padrão, dispara junto) corresponde a FOR/AFTER, não TO. Além disso, as instruções são SELECT/ALTER/DROP, que não são DML.

Alternativa C — ✅ Correta ⟵ GABARITO

Trás FOR (padrão, junto com a ação), AFTER (após a ação) e INSTEAD OF (no lugar da ação) – exatamente os três momentos típicos. As instruções M/N/P são INSERT/UPDATE/DELETE, que são os comandos DML que disparam triggers. Corresponde perfeitamente à descrição.

Alternativa D — ❌ Incorreta

Acerta as instruções DML (INSERT/UPDATE/DELETE), mas erra os momentos ao usar TO/BEFORE/RATHER THAN, que não são a nomenclatura padrão descrita no enunciado.

PEGA ESSA DICA!

Decore a tríade de momentos (FOR/AFTER/INSTEAD OF) e as instruções DML (INSERT/UPDATE/DELETE). Lembre-se que SELECT é DQL, não DML; ALTER e DROP são DDL. Em muitos SGBDs como SQL Server, FOR é sinônimo de AFTER, mas a nomenclatura padrão é a da alternativa C.

Gabarito: letra C.

Link permanente: /questoes/qq685289