Questão de Banco de Dados — SQL Server — Quadrix 2025
- Código
- qg603662
- Banca
- Quadrix
- Órgão
- SEDF
- Ano
- 2025
- Nível
- Superior
- Cargo
- Professor de Educação Básica: Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). No SQL Server, a instrução CREATE INDEX (sem a palavra-chave UNIQUE) cria um índice não único, permitindo valores duplicados na coluna indexada. Para criar um índice que rejeite duplicatas, é obrigatório usar CREATE UNIQUE INDEX — e, nesse caso, a instrução falha se já existirem valores repetidos. A assertiva mistura os dois conceitos: o comando padrão não é único nem lança erro por duplicidade.
O comando CREATE INDEX pertence à sublinguagem DDL (Data Definition Language) e serve para criar estruturas de acesso rápido aos dados, acelerando buscas e ordenações. Por padrão, um índice comum no SQL Server não impõe unicidade: ele apenas organiza os valores da coluna (ou colunas) para consultas mais eficientes, permitindo que valores iguais coexistam em linhas diferentes. A unicidade é uma restrição adicional que precisa ser explicitamente solicitada com a cláusula UNIQUE.
Quando se usa CREATE UNIQUE INDEX, o SQL Server verifica se há duplicatas nos dados existentes antes de criar o índice. Se houver, a operação é abortada com erro — exatamente o comportamento que a assertiva descreve, mas atribuído ao comando errado. A confusão é clássica: a banca troca o comportamento do CREATE INDEX (que aceita duplicatas) pelo do CREATE UNIQUE INDEX (que as rejeita).
Na prática, imagine uma tabela clientes com uma coluna email onde dois registros já possuem o mesmo endereço. Executar CREATE INDEX idx_email ON clientes(email) funciona normalmente, criando um índice não único. Já CREATE UNIQUE INDEX idx_email ON clientes(email) falharia, pois a duplicidade existente violaria a restrição de unicidade. Essa distinção é fundamental para quem administra bancos de dados: índices únicos são usados para garantir integridade (como em chaves candidatas), enquanto índices comuns são apenas otimização de performance.
A pegadinha desta questão está em inverter o efeito do comando: o CREATE INDEX padrão não cria índice único e não lança erro por duplicatas. O erro só ocorre com CREATE UNIQUE INDEX. Guarde essa fronteira: é exatamente nela que a assertiva se divide entre certa e errada.
A afirmação está incorreta porque atribui ao CREATE INDEX (sem UNIQUE) um comportamento que pertence ao CREATE UNIQUE INDEX. O comando padrão cria um índice não único, que aceita valores repetidos sem qualquer erro. A sintaxe correta para impor unicidade é:
CREATE UNIQUE INDEX nome_do_indice
ON nome_da_tabela (coluna1, coluna2, ...);Nesse caso, sim, o SQL Server lança erro se houver duplicatas nos dados. Mas a assertiva diz que o CREATE INDEX (sem UNIQUE) faz isso — o que é falso. O comando CREATE INDEX sozinho é apenas um índice comum, sem restrição de unicidade.
A banca troca o comportamento do CREATE INDEX (índice comum, aceita duplicatas) pelo do CREATE UNIQUE INDEX (índice único, rejeita duplicatas). O candidato que decora a sintaxe sem entender a semântica cai na armadilha. Lembre-se: sem a palavra UNIQUE, não há unicidade — e, portanto, não há erro por duplicidade.
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qg603662