← Questões de Banco de Dados

Banco de Dados · Avança SP · 2025

Questão comentada de Banco de Dados

Relacione cada tipo de transação disponível no SQL Server às suas características correspondentes. I) Transações explícitas II) Transações implícitas III) Transações de escopo de lote a) Cada transação é iniciada com a instrução BEGIN TRANSACTION e finalizada somente com uma instrução COMMIT ou ROLLBACK. b) Aplicável apenas a MARS. A transação que não é confirmada ou revertida quando um lote é concluído, será revertida automaticamente pelo SQL Server. c) Uma transação nova é iniciada quando a transação anterior for concluída, mas cada transação é somente concluída com uma instrução COMMIT ou ROLLBACK.

Gabarito: B

No SQL Server, o tipo de transação muda a forma como a sessão controla o COMMIT e o ROLLBACK. Nas transações explícitas, você abre a transação manualmente com BEGIN TRANSACTION e só fecha quando manda, sem surpresa de sistema no meio do caminho. Já nas transações implícitas, o próprio SQL Server inicia uma nova transação automaticamente quando a anterior termina, então você vai "dirigindo com marcha automática": cada operação relevante exige fechamento com COMMIT ou ROLLBACK. As transações de escopo de lote existem em um cenário mais específico, o MARS (Multiple Active Result Sets). Se o lote acabar e a transação ainda não tiver sido confirmada ou revertida, o SQL Server reverte automaticamente. É um comportamento bem característico e costuma aparecer em prova como detalhe de leitura atenta. Por isso, o gabarito B está correto: I) transações explícitas correspondem à letra a, porque começam com BEGIN TRANSACTION e terminam só com COMMIT ou ROLLBACK; II) transações implícitas correspondem à letra c, porque uma nova transação é iniciada automaticamente quando a anterior é concluída; e III) transações de escopo de lote correspondem à letra b, por serem aplicáveis ao MARS e sofrerem rollback automático ao fim do lote se não forem finalizadas.

Continue treinando

Questões relacionadas