Técnico Judiciário - Área Apoio Especializado Especialidade: Tecnologia da Informação
No H2 Database, para remover todas as linhas da tabela cliente, que não possui restrições de chave estrangeira, sem possibilidade de rollback, utiliza-se o comando
ADELETE * FROM cliente
BTRUNCATE * FROM cliente
CDELETE ALL FROM cliente
DTRUNCATE TABLE cliente
EDELETE ROWS(*) FROM cliente
Revelar gabarito e comentário▾
GabaritoD — TRUNCATE TABLE cliente
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”.
H2 Database — Comandos de exclusão de linhas
Gabarito: letra D. O comando TRUNCATE TABLE cliente remove todas as linhas da tabela sem possibilidade de rollback, pois é um comando DDL (Data Definition Language) que tipicamente não participa de transações. Já o DELETE, por ser DML, pode ser revertido com ROLLBACK. A questão exige o conhecimento da sintaxe correta e da característica de irreversibilidade do TRUNCATE.
Alternativa A — ❌ Incorreta
DELETE * FROM cliente – A sintaxe correta do comando DELETE é DELETE FROM cliente (sem *). Mesmo que a sintaxe fosse corrigida, o DELETE é um comando DML que permite rollback em transações, não atendendo ao requisito de "sem possibilidade de rollback".
Alternativa B — ❌ Incorreta
TRUNCATE * FROM cliente – O comando TRUNCATE não utiliza asterisco. A sintaxe padrão é TRUNCATE TABLE nome_da_tabela. Portanto, a forma apresentada é inválida.
Alternativa C — ❌ Incorreta
DELETE ALL FROM cliente – Essa sintaxe não existe no SQL padrão. Para remover todas as linhas com DELETE, usa-se DELETE FROM cliente.
Alternativa D — ✅ Correta ⟵ GABARITO
TRUNCATE TABLE cliente – Sintaxe correta do comando TRUNCATE. Esse comando remove todas as linhas de uma tabela, não pode ser desfeito (a menos que o banco de dados implemente TRUNCATE transacional, o que não é o caso do H2 em modo padrão) e, conforme enunciado, é a opção adequada por não permitir rollback.
Alternativa E — ❌ Incorreta
DELETE ROWS(*) FROM cliente – Sintaxe inválida. Não existe DELETE ROWS no SQL. Mais uma vez, o comando correto para exclusão de linhas com DELETE seria DELETE FROM cliente.
Característica
DELETE
TRUNCATE
Tipo
DML
DDL
Rollback
Sim (dentro de transação)
Não (na maioria dos bancos)
Sintaxe
DELETE FROM tabela [WHERE condição]
TRUNCATE TABLE tabela
Gatilhos
Dispara triggers
Não dispara triggers
Mantém estrutura
Sim
Sim
Espaço liberado
Marca linhas como excluídas
Libera espaço imediatamente
PEGA ESSA DICA!
Lembre-se da frase: "TRUNCATE é uma tesoura, DELETE é uma borracha". A tesoura corta (não volta atrás), a borracha apaga (mas pode ser desfeita com ROLLBACK).