Alternativa B
Análise Detalhada
Esta questão aborda conceitos fundamentais de Banco de Dados Relacionais, especificamente sobre objetos programáveis: Triggers (gatilhos) e Stored Procedures (procedimentos armazenados).
Para responder corretamente, precisamos analisar a veracidade de cada asserção separadamente.
1. Primeira Asserção: "Uma trigger SQL é bem parecida com uma stored procedure."
- Veredito: Verdadeira.
- Explicação: Tanto uma trigger quanto uma stored procedure são coleções de instruções SQL pré-compiladas armazenadas no servidor de banco de dados. Elas compartilham muitas características técnicas:
- Podem conter lógica condicional (IF/ELSE).
- Podem manipular dados (INSERT, UPDATE, DELETE).
- São compiladas uma vez e executadas múltiplas vezes.
- A principal diferença reside no gatilho de execução: a Stored Procedure é chamada explicitamente pelo usuário/aplicativo, enquanto a Trigger é acionada automaticamente quando ocorre um evento específico (como um INSERT ou UPDATE em uma tabela).
2. Segunda Asserção: "Uma trigger deve retornar um valor, e a stored procedure pode ou não retornar valor."
- Veredito: Falsa.
- Explicação: Esta afirmação contém um erro conceitual grave sobre Triggers.
- Triggers: Por definição, uma Trigger não retorna valores para o aplicativo que disparou a ação. Ela executa ações "silenciosamente" em segundo plano para garantir integridade de dados ou auditoria. Tentar definir um
RETURN explícito em uma Trigger geralmente gera erro de sintaxe ou não tem efeito prático sobre o retorno para o chamante. - Stored Procedures: Podem retornar valores (via parâmetros OUTPUT, SELECT result sets ou códigos de retorno de estado).
Conclusão
A primeira asserção é correta ao apontar a semelhança estrutural entre os dois objetos. A segunda asserção é incorreta ao afirmar que a Trigger deve retornar um valor, o que contradiz o funcionamento padrão dos SGBDs (SQL Server, MySQL, Oracle, PostgreSQL).
Portanto, temos:
- 1ª Asserção: Verdadeira
- 2ª Asserção: Falsa
Isso corresponde à Alternativa B.