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.
- A)I - a; II - b; III - c.
Errada, porque inverte as características de transações implícitas e de escopo de lote.
- B)I - a; II - c; III - b.
Certa, pois faz a associação correta entre explícitas, implícitas e transações de escopo de lote.
- C)I - c; II - b; III - a.
Errada, porque atribui a descrição das transações implícitas às explícitas e troca também a de escopo de lote.
- D)I - c; II - a; III - b.
Errada, porque confunde as transações explícitas com as implícitas e mantém a de lote correta apenas por acaso.
- E)I - b; II - a; III - c.
Errada, porque atribui a característica do MARS às explícitas e embaralha as demais definições.
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.