Questão de Banco de Dados — SQL Server — VUNESP 2023
Banco de Dados›SQL 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 é:
AROLLBACK TRAN @<nome do savepoint>;
BROLLBACK TRAN <nome do savepoint>;
CROLLBACK TRAN UNTIL <nome do savepoint>;
DROLLBACK TRANSACTION FOR <nome do savepoint>;
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.