Agente de Fiscalização à Regulação de Transporte - Tecnologia de Informação
Em relação à remoção de linhas no SQL Server, é correto afirmar:
AUma tabela que tenha todas as linhas removidas permanece no banco de dados. A instrução DELETE só exclui linhas da tabela; a tabela deve ser removida do banco de dados usando a instrução DROP TABLE.
BAo utilizar uma instrução DELETE, se a cláusula WHERE não for especificada, apenas a primeira linha da tabela será excluída.
CDiferentemente da instrução DELETE, uma tabela esvaziada usando a instrução TRUNCATE TABLE é removida do banco de dados, junto com seus índices e outros objetos associados.
DPode-se usar a cláusula UP (n) para limitar o número de linhas que são excluídas em uma instrução DELETE. Neste caso a operação de exclusão é executada em uma seleção aleatória de n linhas.
ECaso seja utilizada a cláusula UP junto com TRUNCATE para excluir linhas em uma determinada ordem, será preciso usar UP junto com ORDER BY em uma instrução de subseleção.
Revelar gabarito e comentário▾
GabaritoA — Uma tabela que tenha todas as linhas removidas permanece no banco de dados. A instrução DELETE só exclui linhas da tabela; a tabela deve ser removida do banco de dados usando a instrução DROP TABLE.
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”.
Remoção de linhas no SQL Server: DELETE, TRUNCATE e DROP
Gabarito: letra A. A instrução DELETE remove apenas as linhas da tabela, mantendo sua estrutura; a tabela só é removida do banco de dados com o comando DROP TABLE. Essa distinção é fundamental e é o que a alternativa A afirma corretamente.
A banca testa o conhecimento dos comandos de exclusão de dados e objetos no SQL Server. Enquanto DELETE e TRUNCATE operam sobre os dados (linhas), DROP TABLE remove a própria tabela (incluindo sua estrutura e dados).
Remoção de linhas (SQL Server): DELETE (Remove linhas (dados), Tabela permanece (estrutura), Sem WHERE → todas as linhas, Limite: TOP (n)); TRUNCATE TABLE (Remove linhas (dados), Tabela permanece (estrutura), Índices preservados); DROP TABLE (Remove tabela (estrutura + dados), Remove índices e objetos associados)
Alternativa A — ✅ Correta ⟜ GABARITO
A afirmação está correta. O comando DELETE, mesmo quando remove todas as linhas, não apaga a tabela. A tabela permanece no banco de dados, vazia, pronta para receber novos dados. Para eliminar definitivamente a tabela (estrutura e dados), utiliza-se o comando DROP TABLE. Essa é a diferença clássica entre exclusão de dados e exclusão de objeto.
Material de apoio: "A instrução DROP TABLE é usada para deletar uma tabela existente... Essa instrução irá deletar todos os dados da tabela, bem como a própria tabela. Contudo, você pode desejar excluir apenas os dados da tabela, sem excluir a estrutura dessa tabela. Para isso, poderá usar o comando TRUNCATE: TRUNCATE TABLE nome_da_tabela;"
Alternativa B — ❌ Incorreta
Afirma que, sem a cláusula WHERE, o DELETE exclui apenas a primeira linha. Isso é falso. No SQL Server, o comando DELETE sem WHERE remove todas as linhas da tabela. Para excluir apenas a primeira linha (ou um número limitado), deve-se usar a cláusula TOP (ex.: DELETE TOP (1) FROM tabela). O erro é grave: inverter o comportamento padrão do comando.
Alternativa C — ❌ Incorreta
Diz que o TRUNCATE TABLE remove a tabela do banco de dados, junto com índices e objetos associados. Isso é incorreto. O comando TRUNCATE TABLE esvazia a tabela (remove todas as linhas), mas preserva a estrutura da tabela e seus índices. Quem remove a tabela (incluindo estrutura e índices) é o DROP TABLE. A confusão entre TRUNCATE e DROP é clássica.
Alternativa D — ❌ Incorreta
Menciona uma cláusula UP (n) para limitar o número de linhas excluídas. Essa cláusula não existe no SQL Server. O correto é usar TOP (n) em conjunto com DELETE, como em DELETE TOP (10) FROM tabela. Além disso, a afirmação de que a exclusão é "aleatória" não é precisa: sem ORDER BY, a seleção das linhas é não determinística, mas o SQL Server geralmente escolhe com base no plano de execução. De qualquer forma, o comando citado (UP) é inválido.
Alternativa E — ❌ Incorreta
Sugere usar a cláusula UP junto com TRUNCATE e ORDER BY em subseleção. TRUNCATE não aceita cláusulas TOP, ORDER BY nem qualquer filtro; ele remove todas as linhas de uma vez, sem possibilidade de ordenação ou limitação. A combinação descrita não existe na sintaxe do SQL Server. Se for necessário excluir linhas em ordem ou limitar, usa-se DELETE com TOP e ORDER BY.
PEGA ESSA DICA!
Decore o papel de cada comando:
DELETE: remove linhas (pode ser filtrado com WHERE/TOP); mantém a tabela.
TRUNCATE: remove todas as linhas de uma tabela de forma rápida (não registra cada exclusão); mantém a estrutura.
DROP TABLE: remove a tabela inteira (dados + estrutura + índices).
Nunca confunda TRUNCATE com DROP: TRUNCATE esvazia, DROP apaga.