Maria gerencia um banco de dados SQL Server, e precisa criar um mecanismo que monitore todas as alterações ocorridas na estrutura das tabelas, especialmente os efeitos dos comandos CREATE, ALTER e DROP. A estratégia mais adequada para detectar comandos dessa natureza passa pela criação e uso de:
- A)Funções escalares;
Funções escalares retornam um único valor e não são usadas para monitorar eventos de alteração estrutural.
- B)Sequences;
Sequences servem para gerar valores numéricos sequenciais, não para detectar comandos de DDL.
- C)Statistics;
Statistics ajudam o otimizador de consultas, mas não registram nem interceptam CREATE, ALTER ou DROP.
- D)Stored Procedures;
Stored procedures executam rotinas quando chamadas, porém não ficam automaticamente atentas a mudanças na estrutura do banco.
- E)Triggers.
Triggers, especialmente as DDL triggers no SQL Server, disparam automaticamente diante de eventos como CREATE, ALTER e DROP.
Gabarito: E
Quando a questão fala em monitorar alterações na estrutura das tabelas, o caminho clássico no SQL Server é pensar em trigger, especialmente as triggers de DDL. Elas são acionadas por eventos como CREATE, ALTER e DROP, ou seja, justamente os comandos que mexem na definição dos objetos do banco. É como colocar um alarme na porta do banco: entrou comando de mudança estrutural, o mecanismo dispara na hora. No SQL Server, triggers não servem só para registrar alterações de dados em linhas de tabelas; elas também podem ser usadas para capturar eventos de esquema. Por isso, se a banca quer detectar mudanças de estrutura, a resposta correta não é algo ligado a cálculo, geração de números ou execução encapsulada de rotina, mas sim um gatilho que reaja automaticamente ao evento. As demais alternativas fogem do objetivo. Função escalar devolve valor, sequence gera sequência numérica, statistics auxilia o otimizador de consultas, e stored procedure é um bloco de comandos executado sob demanda. Nenhuma delas fica "escutando" eventos de DDL como CREATE, ALTER e DROP. Em resumo: se a ideia é monitorar alterações estruturais no SQL Server, você pensa em DDL trigger. É um recurso nativo do SGBD e é exatamente o tipo de mecanismo cobrado quando a questão fala em rastrear mudanças no schema.