Quando se abre uma Transaction no SQL Server em uma Procedu...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - Commit.
Vamos abordar o tema central da questão, que é o controle de transações em uma base de dados SQL Server. O conceito é muito importante em ambientes de bancos de dados, pois garante a integridade e a consistência dos dados durante operações que modificam as tabelas, como INSERT, UPDATE e DELETE.
Uma transação é um conjunto de operações que são tratadas como uma única unidade de trabalho. Isto significa que todas as operações devem ser completadas (commit) ou todas devem falhar (rollback). O COMMIT é uma instrução SQL que é usada para indicar o fim de uma transação com sucesso, asegurando que todas as modificações realizadas durante a transação sejam persistidas na base de dados. Por outro lado, o ROLLBACK é utilizado para desfazer todas as operações realizadas dentro de uma transação, retornando os dados ao estado anterior.
No contexto de uma procedure, quando se inicia uma transação com o comando BEGIN TRANSACTION, deve-se utilizar o comando COMMIT para concluir essa transação com sucesso, tornando permanentes as alterações realizadas. Caso contrário, nenhuma das alterações feitas durante a transação será salva na base de dados.
Entendendo cada uma das alternativas:
- A - ROLLBACK: comando para desfazer uma transação, não para concluir.
- B - BEGIN TRANSACTION: inicia uma transação e não a finaliza.
- C - COMMIT: é o comando correto que deve ser utilizado para efetivar as mudanças realizadas pela transação na base de dados.
- D - TRY: é parte da estrutura de tratamento de erros TRY...CATCH em SQL, não relacionada diretamente com a finalização de transações.
Portanto, a resposta correta é a C - Commit, pois é o comando usado para finalizar uma transação aberta no SQL Server, assegurando que todas as operações de INSERT, UPDATE e DELETE sejam permanentemente aplicadas na base de dados.
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
As transações em um sistema relacional devem ser atômicas, ou seja: ou acontece inteira ou não acontece nada. Quando uma transação inicia o sistema é colocado em um estado volátil e não persistente. Então, se não for informado o comando COMMIT ao SGBD, ele inicia automaticamente um ROLLBACK que retorna o sistema ao estágio válido anterior mais recente. Impedindo que, por exemplo, eu peça que o sistema faça A e B e algum erro que aconteça entre a operação A e B deixe o sistema em um estado inválido, que só ocorreu A.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo