Auditor do Estado - Ciências da Computação - Tarde (Conhecimentos Específicos)
Nos SGBDs relacionais, os procedimentos chamados automaticamente como ação imediata após um determinado evento são chamados Trigger ou Gatilho. Geralmente esses objetos são especificados por um DBA.Na descrição de uma Trigger podem-se encontrar três partes: (i) evento que é a alteração no banco de dado que ativa a trigger; (ii) condição, consulta ou teste que é executado quando a trigger é ativada; e (iii) ação que diz respeito ao procedimento que é executado quando a trigger é ativada e quando a condição é verdadeira.Sobre triggers no SGBD Microsoft SQL Server, assinale V para a afirmativa verdadeira e F para afirmativa falsa.( ) Não é permitido criar trigger de DELETE/UPDATE em colunas de tabelas que sejam chaves estrangeiras e tenham configurado DELETE/UPDATE de forma CASCADE.( ) Uma das maneira de auditar tabelas de bancos de dados é usando trigges. No SQL Server é permitido construir triggers em eventos do TRUNCATE TABLE uma vez que esse comando não deixa de ser de fato um comando de DELETE.( ) É permitido criar triggers para eventos de CREATE, DROP, ALTER, RESTORE DATABASE assim como para LOGON com intuito de aumentar a segurança do banco de dados.As afirmativas são, respectivamente,
AF, V e F.
BV, F e F.
CV, F e V.
DF, F e V.
EV, V e F.
Revelar gabarito e comentário▾
GabaritoB — V, F e F.
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”.
SQL Server: Triggers
Gabarito: letra B (V, F, F). As afirmativas sobre triggers no SQL Server são julgadas assim:
1ª (Verdadeira): Não é permitido criar triggers INSTEAD OF (e, por extensão, triggers de DELETE/UPDATE que seriam INSTEAD OF) em tabelas com chaves estrangeiras configuradas com CASCADE. Essa restrição consta na documentação oficial da Microsoft para evitar conflitos de integridade referencial.
2ª (Falsa): O comando TRUNCATE TABLE é uma operação DDL, não DML, e não dispara triggers DML (como de DELETE). A justificativa da afirmativa – "não deixa de ser um comando de DELETE" – é incorreta, pois TRUNCATE não gera linhas de log individuais e não pode ser capturado por triggers DML convencionais.
3ª (Falsa): Embora seja possível criar triggers DDL para eventos como CREATE, ALTER, DROP e LOGON, o evento RESTORE DATABASE não é um evento de trigger no SQL Server. Ele é uma operação de restauração que não se enquadra nos tipos de eventos suportados por triggers DDL ou DML.
A tabela a seguir resume o julgamento de cada afirmativa:
Afirmativa
Julgamento
I
V
II
F
III
F
A sequência correta é V, F, F, correspondente à alternativa B.
Alternativa A — ❌ Incorreta (F, V, F)
Afirma que a primeira sentença é falsa e a segunda verdadeira. Incorreto: a primeira é verdadeira (restrição CASCADE impede triggers INSTEAD OF) e a segunda é falsa (TRUNCATE não dispara triggers DML).
Alternativa B — ✅ Correta ⟵ GABARITO
Sequência V, F, F. Contém exatamente os julgamentos corretos:
I: verdadeiro (não se pode criar certos triggers em cascata);
II: falso (TRUNCATE não é DELETE);
III: falso (RESTORE não é evento de trigger).
Alternativa C — ❌ Incorreta (V, F, V)
Erro na terceira afirmativa: considerar que RESTORE DATABASE é um evento válido para triggers é falso.
Alternativa D — ❌ Incorreta (F, F, V)
Erra na primeira (que é verdadeira) e na terceira (que é falsa).
Alternativa E — ❌ Incorreta (V, V, F)
Erra na segunda afirmativa: acreditar que TRUNCATE dispara triggers DML é incorreto.
NÃO CAIA NESSA!
A banca explora a restrição de triggers em tabelas com CASCADE. Muitos candidatos acham que criar triggers sobre colunas com cascata é permitido, mas o SQL Server proíbe triggers INSTEAD OF nessas condições. Além disso, confundem TRUNCATE com DELETE, pensando que geram os mesmos eventos. Lembre-se: TRUNCATE é DDL e não dispara triggers DML.