Questão de Banco de Dados — SQL Server — Avança SP 2023
- Código
- qa541097
- Banca
- Avança SP
- Órgão
- Pref SM Arcanjo
- Ano
- 2023
- Cargo
- Tec (SM Arcanjo)
- ADROP DATABASE
- BSELECT DATABASE
- CTRUNCATE DATABASE
- DEXECUTE DATABASE
- EREMOVE DATABASE
GabaritoA — DROP DATABASE
Gabarito: letra A. O comando DROP DATABASE é o correto para apagar um banco de dados no MS SQL Server, pois o DROP é o comando da sublinguagem DDL (Data Definition Language) destinado a remover objetos inteiros do banco, como tabelas, views e o próprio banco de dados. As demais alternativas não existem ou não têm essa finalidade no SQL padrão.
O SQL (Structured Query Language) é dividido em sublinguagens, cada uma com um papel específico. A DDL (Data Definition Language) é a que lida com a estrutura do banco: criar, alterar e remover objetos como tabelas, índices e bancos de dados. Os comandos principais da DDL são CREATE, ALTER, DROP e TRUNCATE. Enquanto CREATE cria um objeto, ALTER modifica sua estrutura e DROP remove o objeto por completo — incluindo todos os dados e a definição da estrutura. Já o TRUNCATE é um caso especial: ele apaga todos os registros de uma tabela, mas mantém a tabela (sua estrutura) intacta.
Para apagar um banco de dados inteiro, a sintaxe é simples: DROP DATABASE nome_do_banco;. Esse comando remove o banco e todos os seus objetos (tabelas, views, procedures, etc.) de uma só vez. É uma operação irreversível — por isso, em ambientes de produção, é comum fazer um backup antes de executá-lo. No SQL Server, o comando é o mesmo do padrão SQL, e a banca cobra exatamente essa literalidade.
A confusão mais comum neste tema é misturar os comandos que agem sobre dados (linhas) com os que agem sobre estrutura (objetos). O DELETE remove linhas de uma tabela (DML), o TRUNCATE remove todas as linhas de uma tabela mas preserva a estrutura (DDL), e o DROP remove o objeto inteiro — tabela, banco, view, etc. (DDL). Veja a comparação:
Comando | Sublinguagem | O que faz | Estrutura? |
|---|---|---|---|
| DML | Remove linhas (pode usar | Mantém |
| DDL | Remove todas as linhas | Mantém |
| DDL | Remove o objeto inteiro (tabela, banco, view) | Remove |
Guarde essa distinção: DROP apaga o objeto; TRUNCATE apaga os dados; DELETE apaga linhas específicas. É exatamente nessa fronteira que as alternativas desta questão se separam.
O comando DROP DATABASE é o correto para apagar um banco de dados no MS SQL Server. Ele faz parte da DDL e remove o banco de dados inteiro, incluindo todos os seus objetos e dados. A sintaxe é DROP DATABASE nome_do_banco;. É a forma padrão e universalmente aceita no SQL.
SELECT DATABASE não existe como comando de exclusão. O SELECT é o comando da DQL (Data Query Language) ou DML, usado para consultar dados, não para apagar objetos. Não há nenhuma sintaxe SELECT DATABASE no SQL Server.
TRUNCATE DATABASE não existe. O TRUNCATE é usado apenas com TABLE (TRUNCATE TABLE nome_da_tabela) e serve para apagar todos os registros de uma tabela, mantendo a estrutura. Não é possível truncar um banco de dados inteiro com esse comando.
EXECUTE DATABASE não existe. O comando EXECUTE (ou EXEC) é usado para executar uma stored procedure ou um bloco de código, não para apagar objetos. Não há relação com exclusão de banco de dados.
REMOVE DATABASE não existe no SQL padrão nem no SQL Server. O comando correto para remover um banco de dados é DROP DATABASE. A palavra REMOVE não é um comando SQL válido para essa finalidade.
A banca tenta confundir o candidato com comandos que não existem (SELECT DATABASE, EXECUTE DATABASE, REMOVE DATABASE) ou que existem mas com outra função (TRUNCATE). O TRUNCATE é o mais traiçoeiro: ele apaga dados, mas não apaga o banco — e a banca conta com essa confusão entre "apagar dados" e "apagar o banco". Fique atento: DROP é o único que remove o objeto inteiro.
Para fixar, lembre-se do trio: CREATE cria, ALTER modifica, DROP remove. E para o TRUNCATE, guarde que ele é um "DELETE sem WHERE" — apaga todas as linhas, mas preserva a tabela. Na prova, se a pergunta for "apagar banco de dados", a resposta é sempre DROP DATABASE.
Gabarito: letra A
Link permanente: /questoes/qa541097