Considere uma tabela nomeada como TB_CONCURSO em um SGBD SQL Server 2022. Assinale a alternativa que corresponde a um comando SQL que irá excluir todos os registros da tabela TB_CONCURSO, mantendo a estrutura da tabela.
ADELETE TB_CONCURSO;
BTRUNCATE TABLE TB_CONCURSO;
CUPDATE TB_CONCURSO SET NULL;
DDROP TABLE TB_CONCURSO;
Revelar gabarito e comentário▾
GabaritoB — TRUNCATE TABLE TB_CONCURSO;
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”.
Comandos SQL para exclusão de registros mantendo estrutura
Gabarito: letra B. O comando TRUNCATE TABLE é o padrão SQL para remover todas as linhas de uma tabela preservando sua estrutura (colunas, índices, etc.). Diferentemente do DELETE (alternativa A), que também mantém a estrutura mas é um comando DML com log individual por linha e menor desempenho, o TRUNCATE é um comando DDL que libera espaço rapidamente. O DROP TABLE (D) remove a tabela por completo, e o UPDATE (C) apenas modifica dados, sem excluí-los.
Comando SQL
Tipo de Comando
Efeito sobre os Registros
Efeito sobre a Estrutura da Tabela
Indicado para Exclusão Total?
DELETE TB_CONCURSO;
DML (Data Manipulation Language)
Remove todas as linhas (uma a uma, com log)
Mantém a estrutura
Sim, mas menos eficiente
TRUNCATE TABLE TB_CONCURSO;
DDL (Data Definition Language)
Remove todas as linhas (em massa, sem log individual)
Mantém a estrutura
Sim, mais rápido e eficiente
UPDATE TB_CONCURSO SET NULL;
DML
Não remove; apenas define valores como NULL
Mantém a estrutura
Não
DROP TABLE TB_CONCURSO;
DDL
Remove todos os registros
Remove a estrutura (tabela deixa de existir)
Não
Exclusão mantendo estrutura: DDL (rápido, zera identidade) (TRUNCATE TABLE); DML (lento, log por linha) (DELETE (com/sem FROM)); Exclui estrutura (DROP TABLE); Não exclui registros (UPDATE SET NULL)
Alternativa A — ❌ Incorreta
DELETE TB_CONCURSO; (ou DELETE FROM) é um comando DML que pode, sim, excluir todos os registros mantendo a estrutura, porém não é a opção mais eficiente nem a mais indicada quando se deseja limpar a tabela por completo. Além disso, há risco de confusão com a ausência da cláusula FROM, embora no SQL Server a sintaxe sem FROM seja aceita. A banca elegeu o TRUNCATE como resposta correta por sua característica de exclusão em massa e rápida, sem registro transacional linha a linha.
Alternativa B — ✅ Correta ⟵ GABARITO
TRUNCATE TABLE TB_CONCURSO; remove todas as linhas da tabela, zera os contadores de identidade (se houver) e mantém intacta a definição da tabela. É o comando exato para a finalidade descrita.
Alternativa C — ❌ Incorreta
UPDATE TB_CONCURSO SET NULL; não exclui registros; apenas define todas as colunas como NULL. A tabela continuará com o mesmo número de linhas, todas com valores nulos.
Alternativa D — ❌ Incorreta
DROP TABLE TB_CONCURSO; exclui a tabela inteira, incluindo sua estrutura (colunas, índices, constraints). Após sua execução, a tabela deixa de existir, o que contraria o requisito de manter a estrutura.
PEGA ESSA DICA!
Grave a diferença fundamental: DELETE = DML (exclusão seletiva, transacional, lenta); TRUNCATE = DDL (exclusão total, não transacional, rápida). Ambos mantêm a estrutura, mas o TRUNCATE é o mais indicado na exclusão completa de dados.