Um Analista de Sistemas está realizando uma série de operaçõ...

Próximas questões
Com base no mesmo assunto
Q4036221 Banco de Dados
Um Analista de Sistemas está realizando uma série de operações no banco de dados institucional utilizando a Structured Query Language (SQL). Durante a execução de uma transação que envolve várias alterações consecutivas, ele define pontos de salvamento para garantir maior controle sobre as operações realizadas. Em determinado momento, o Analista identifica um erro em uma das etapas mais recentes da transação e decide desfazer apenas as operações realizadas após um ponto de salvamento específico, mantendo válidas as alterações realizadas anteriormente dentro da mesma unidade de trabalho. Nesse contexto, qual comando SQL deve ser utilizado para realizar essa operação?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: A questão exigia identificar o comando que desfaz apenas as alterações posteriores a um savepoint específico, sem cancelar toda a transação. Esse é o critério que distingue ROLLBACK TO SAVEPOINT das demais alternativas.

Tema central: Savepoint e rollback parcial
Análise das alternativas
A
Errada
END TRANSACTION se relaciona ao encerramento da transação, não ao desfazimento parcial de operações após um savepoint. O erro da alternativa é trocar retorno controlado a um ponto intermediário por término da unidade de trabalho.
B
Errada
LOCK TABLE trata de bloqueio de tabela para controle de concorrência. Não é comando de reversão e não atua sobre o desfazimento das alterações feitas na transação.
C
Certa
SAVEPOINT cria um ponto intermediário dentro da transação, e o comando adequado para desfazer somente o que veio depois dele é ROLLBACK TO SAVEPOINT. Por isso, a alternativa C está correta.
D
Errada
START TRANSACTION serve para iniciar a transação. O enunciado, porém, exige reverter parte do que já foi executado, e não abrir uma nova unidade de trabalho.
E
Errada
RELEASE SAVEPOINT apenas libera/remove o ponto de salvamento. Isso não desfaz as operações posteriores a ele, portanto não atende ao procedimento pedido.
Pegadinha da questão
A confusão explorada é entre voltar a um savepoint para desfazer parcialmente a transação e apenas encerrar a transação ou liberar o savepoint sem reverter alterações.
Dica para questões semelhantes
  • Se o enunciado falar em desfazer apenas parte da transação, procure comando de rollback parcial, não de encerramento.
  • Quando houver menção expressa a savepoint específico, o critério decisivo é verificar qual comando retorna a esse ponto preservando o que veio antes.
  • Comandos de início, bloqueio ou liberação de savepoint não substituem comando de reversão de alterações.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo