Acerca de triggers e procedimentos armazenados, julgue o se...
Em um trigger, podem-se executar os comandos COMMIT ROLLBACK ou SAVEPOINT, mas não se pode chamar procedures ou funções que executem essas tarefas.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - errado.
Vamos entender o porquê dessa alternativa ser a correta. Primeiro, é importante saber o que são triggers e procedimentos armazenados (também conhecidos como stored procedures).
Triggers são objetos do banco de dados que são ativados automaticamente quando ocorre um evento especificado, como inserção, atualização ou exclusão de registros em uma tabela. Eles são usados para garantir a integridade dos dados ou para executar tarefas automaticamente.
Em relação aos comandos COMMIT, ROLLBACK e SAVEPOINT, eles estão associados ao controle de transações em um banco de dados. COMMIT é utilizado para finalizar uma transação, confirmando todas as operações realizadas. ROLLBACK é usado para desfazer operações de uma transação, e SAVEPOINT permite definir um ponto intermediário dentro de uma transação, para o qual se pode voltar em caso de necessidade de desfazer parte das operações.
Uma característica importante dos triggers é que, geralmente, eles operam no contexto de uma transação iniciada pela ação que os disparou. Por esse motivo, não é recomendado, e em muitos sistemas de bancos de dados não é permitido, executar comandos como COMMIT ou ROLLBACK dentro de um trigger, pois isso poderia comprometer a integridade da transação global.
Além disso, ao contrário do que é afirmado na questão, triggers podem sim chamar procedimentos armazenados ou funções, que por sua vez podem conter comandos de controle de transação, embora o uso desses comandos dentro de procedimentos chamados por triggers também seja, em muitos casos, restrito ou desaconselhado por questões de integridade e gerenciamento de transações.
Portanto, a afirmação de que em um trigger podem-se executar os comandos COMMIT, ROLLBACK ou SAVEPOINT, mas não se pode chamar procedures ou funções que executem essas tarefas, é incorreta, pois, na verdade, a execução desses comandos diretamente em triggers é que é geralmente proibida ou desaconselhada, enquanto a chamada de procedures ou funções é permitida, apesar de que as próprias procedures ou funções podem ter restrições quanto ao uso de comandos de controle de transações.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito: E
C.J. Date (Introdução a sistemas de bancos de dados):
Os eventos possíveis incluem:
- INSERT, DELETE, UPDADE (possivelmente com atributo específico),
- alcance do fim da transação (COMMIT),
- alcance de um horário especificado do dia,
- excesso de um tempo limite especificado,
- violação de uma restrição especificada e assim por diante.
Além do mais, um trigger pode chamar/invocar uma stored procedures. (Site DEVMEDIA)
Cespe: A partir da instrução create trigger, é possível criar ações que serão executadas quando ocorrer determinado evento em uma tabela do banco de dados, por exemplo a remoção de dados. (CERTO)
Cespe: Um trigger é executado automaticamente sem a interferência do usuário enquanto uma stored procedure precisa ser explicitamente invocada. (CERTO)
Cespe: Um bloco de comandos trigger é executado automaticamente quando uma instrução SELECT é executada em uma tabela do banco de dados. (ERRADO)
Triggers são acionados automaticamente em resposta a eventos específicos no banco de dados, e eles podem executar uma série de ações, incluindo chamadas de procedimentos ou funções. Portanto, é perfeitamente possível que um trigger invoque procedures ou funções que envolvam operações de controle de transações, como COMMIT, ROLLBACK ou SAVEPOINT.
Essa funcionalidade permite que os triggers sejam utilizados de forma mais flexível e abrangente, podendo realizar tarefas complexas que requerem manipulação de transações, auditoria ou outras operações específicas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo