Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — VUNESP 2023

Banco de DadosSQL Server
Código
vu078905
Banca
VUNESP
Órgão
TCM-SP
Ano
2023
Nível
Superior
Cargo
Auditor de Controle Externo - Especialidade: Tecnologia da Informação
O comando do sistema gerenciador de bancos de dados Microsoft SQL Server que desfaz as transações até um savepoint especificado é:
  1. AROLLBACK TRAN @<nome do savepoint>;
  2. BROLLBACK TRAN <nome do savepoint>;
  3. CROLLBACK TRAN UNTIL <nome do savepoint>;
  4. DROLLBACK TRANSACTION FOR <nome do savepoint>;
  5. EROLLBACK TRANSACTION <nome do savepoint>;
Revelar gabarito e comentário

GabaritoE — ROLLBACK TRANSACTION <nome do savepoint>;

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”.

T-SQL: Desfazendo transações até um savepoint

Gabarito: letra E. No Microsoft SQL Server, o comando que desfaz as transações até um savepoint especificado é ROLLBACK TRANSACTION <nome_do_savepoint>. A sintaxe dispensa a palavra TO SAVEPOINT e não utiliza variável com @, nem cláusulas UNTIL ou FOR.

Alternativa A — ❌ Incorreta

Utiliza @ antes do nome, o que indicaria uma variável, não o nome do savepoint. No SQL Server, o ROLLBACK TRAN com @ é usado para reverter para uma transação nomeada armazenada em variável, mas não é a forma padrão para savepoints.

Alternativa B — ❌ Incorreta (para o gabarito oficial)

Embora ROLLBACK TRAN <nome> seja válido no SQL Server, o gabarito oficial aponta que o comando correto utiliza TRANSACTION por extenso. A questão pode ter considerado a forma completa como a mais adequada.

Alternativa C — ❌ Incorreta

A palavra UNTIL não existe na sintaxe do ROLLBACK no SQL Server. A opção não é reconhecida.

Alternativa D — ❌ Incorreta

A preposição FOR não é utilizada nesse contexto. O correto é apenas o nome do savepoint após ROLLBACK TRANSACTION.

Alternativa E — ✅ Correta ⟵ GABARITO

ROLLBACK TRANSACTION <nome_do_savepoint> é a sintaxe oficial do SQL Server para desfazer alterações até o ponto de salvamento definido por SAVEPOINT. Conforme a documentação e material de apoio, é possível omitir a palavra SAVEPOINT e usar diretamente o nome. Exemplo:

BEGIN TRANSACTION;
UPDATE tabela SET coluna = valor;
SAVEPOINT ponto1;
INSERT INTO tabela VALUES (...);
ROLLBACK TRANSACTION ponto1;  -- desfaz apenas o INSERT
COMMIT;
PEGA ESSA DICA!

Memorize que no SQL Server o comando é ROLLBACK TRAN ou ROLLBACK TRANSACTION seguido do nome do savepoint, sem TO SAVEPOINT. Já no Oracle e MySQL usa-se ROLLBACK TO SAVEPOINT nome. Essa diferença é clássica em provas de bancos de dados.

Gabarito: letra E.

Link permanente: /questoes/vu078905