Em SQL, constitui-se que uma transact é uma única unidade de trabalho. Quando obtiver êxito, todas as modificações de dados feitas durante a transact estarão confirmadas e se tornarão parte permanente do banco de dados. No ambiente SQL Server, o modo de operação transact que é aplicável apenas a MARS (Conjuntos de Resultados Ativos Múltiplos), é melhor classificado como:
ATransact de confirmação automática
BTransact explícita
CTransact implícitas
DTransact de escopo de lote
ETransact de entrada
Revelar gabarito e comentário▾
GabaritoD — Transact de escopo de lote
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Transações no SQL Server: modos de operação e MARS
Gabarito: letra D. A transação de escopo de lote (batch-scoped transaction) é o modo de operação de transação que se aplica apenas ao MARS (Multiple Active Result Sets), pois, nesse modo, o SQL Server gerencia a transação implicitamente para cada lote (batch) executado, sem exigir comandos explícitos de BEGIN/COMMIT/ROLLBACK. Essa é uma característica específica do MARS, que permite múltiplos resultados ativos na mesma conexão.
O enunciado descreve o conceito geral de transação como uma unidade de trabalho atômica, com propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). No SQL Server, existem quatro modos de operação de transação: autocommit, explícita, implícita e de escopo de lote. A transação de escopo de lote é a única que se aplica exclusivamente ao MARS, pois, nesse modo, o SQL Server inicia e confirma a transação automaticamente para cada lote, sem intervenção do programador.
Para entender a diferença, é essencial conhecer os quatro modos:
Autocommit: é o modo padrão do SQL Server. Cada instrução SQL individual é uma transação completa, confirmada automaticamente ao final da instrução. Não há necessidade de BEGIN TRANSACTION ou COMMIT.
Explícita: o programador define explicitamente o início e o fim da transação com comandos como BEGIN TRANSACTION, COMMIT e ROLLBACK. É o modo mais comum para controlar transações em aplicações.
Implícita: quando ativado (SET IMPLICIT_TRANSACTIONS ON), o SQL Server inicia uma transação automaticamente após a execução de certas instruções (como INSERT, UPDATE, DELETE), mas o programador deve confirmar ou reverter explicitamente com COMMIT ou ROLLBACK.
Escopo de lote: é um modo especial que se aplica apenas ao MARS. Nesse modo, o SQL Server trata cada lote (batch) como uma transação implícita, iniciando-a automaticamente e confirmando-a ao final do lote. Isso é necessário porque o MARS permite que múltiplos resultados ativos sejam processados na mesma conexão, e o SQL Server precisa gerenciar as transações de forma a não conflitar com a execução concorrente de instruções.
A pegadinha da banca está em confundir os modos de transação, especialmente a transação implícita com a de escopo de lote. A transação implícita é um modo geral que pode ser usado em qualquer conexão, enquanto a de escopo de lote é específica do MARS. O candidato que não conhece essa distinção pode marcar a alternativa C (implícita) por achar que é a única que não exige comandos explícitos, mas a questão pede especificamente o modo aplicável apenas ao MARS.
Na prática, o MARS é um recurso do SQL Server que permite que uma única conexão execute múltiplas instruções e receba múltiplos resultados simultaneamente, sem precisar abrir novas conexões. Isso é útil em aplicações que precisam processar vários resultados ao mesmo tempo, como em consultas aninhadas ou em cenários de leitura e escrita concorrentes. A transação de escopo de lote garante que cada lote seja tratado como uma unidade atômica, mantendo a consistência dos dados.
Guarde a fronteira entre os modos de transação: autocommit (padrão, por instrução), explícita (controle manual), implícita (início automático, fim manual) e escopo de lote (específica do MARS, por lote). É exatamente nessa distinção que as alternativas se dividem.
Modo de Transação
Controle de Início
Controle de Fim
Aplicação Exclusiva ao MARS?
Autocommit (confirmação automática)
Automático (por instrução)
Automático (por instrução)
Não — é o padrão geral
Explícita
Manual (BEGIN TRANSACTION)
Manual (COMMIT/ROLLBACK)
Não — é o modo geral de controle
Implícita
Automático (após certas instruções)
Manual (COMMIT/ROLLBACK)
Não — pode ser usada em qualquer conexão
Escopo de lote (batch-scoped)
Automático (por lote)
Automático (ao final do lote)
Sim — é o modo específico do MARS
Entrada
—
—
Não existe no SQL Server
Modos de transação (SQL Server): Autocommit (Padrão, por instrução); Explícita (BEGIN/COMMIT/ROLLBACK manual); Implícita (Início automático, fim manual); Escopo de lote (Apenas MARS, Por lote (batch))
Alternativa A — ❌ Incorreta
A transação de confirmação automática (autocommit) é o modo padrão do SQL Server, em que cada instrução é uma transação completa, confirmada automaticamente. Não é específica do MARS; é o comportamento padrão de qualquer conexão. O erro está em associar esse modo ao MARS, quando na verdade ele é o modo geral de operação.
Alternativa B — ❌ Incorreta
A transação explícita é aquela em que o programador controla manualmente o início e o fim com BEGIN TRANSACTION, COMMIT e ROLLBACK. É o modo mais comum e não tem relação exclusiva com o MARS. O erro está em considerar que esse modo se aplica apenas ao MARS, quando na verdade é um modo geral de controle de transações.
Alternativa C — ❌ Incorreta
A transação implícita é um modo em que o SQL Server inicia automaticamente uma transação após certas instruções, mas exige que o programador a confirme ou reverta explicitamente. Embora seja um modo que não exige BEGIN TRANSACTION, não é exclusivo do MARS; pode ser usado em qualquer conexão. O erro está em confundir a transação implícita com a de escopo de lote, que é a específica do MARS.
Alternativa D — ✅ Correta ⟵ GABARITO
A transação de escopo de lote é o modo de operação que se aplica apenas ao MARS. Nesse modo, o SQL Server gerencia a transação implicitamente para cada lote (batch), iniciando-a automaticamente e confirmando-a ao final do lote. Isso é necessário porque o MARS permite múltiplos resultados ativos na mesma conexão, e o SQL Server precisa garantir que cada lote seja tratado como uma unidade atômica. É exatamente o que o enunciado pede: o modo aplicável apenas ao MARS.
Alternativa E — ❌ Incorreta
A transação de entrada não é um modo de operação reconhecido no SQL Server. Não existe esse conceito na documentação oficial. O erro está em inventar um termo que não corresponde a nenhum modo real de transação.
NÃO CAIA NESSA!
A banca explora a confusão entre transação implícita e transação de escopo de lote. Ambas não exigem BEGIN TRANSACTION, mas a implícita é um modo geral, enquanto a de escopo de lote é exclusiva do MARS. O candidato que não conhece essa distinção pode marcar a alternativa C, mas a correta é a D.
PEGA ESSA DICA!
Para memorizar os modos de transação do SQL Server, lembre-se da sigla A-E-I-B: Autocommit (padrão), Explícita (manual), Implícita (início automático, fim manual) e Batch-scoped (escopo de lote, específica do MARS). Associe a letra B a "Batch" e a "MARS" para fixar.