Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — Quadrix 2025

Banco de DadosSQL Server
Código
qg603662
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
Acerca das linguagens de definição e manipulação de dados, dos conceitos e comandos SQL SERVER e DB2 e dos bancos de dados textuais, julgue o item a seguir. Em SQL Server, a instrução CREATE INDEX aplicada sobre uma coluna com valores repetidos cria automaticamente um índice único, lançando erro se houver duplicatas.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

CREATE INDEX e unicidade no SQL Server

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.

CREATE INDEX (SQL Server)
  • 1Sem UNIQUE
    • Índice não único
    • Aceita valores duplicados
    • Não lança erro
  • 2Com UNIQUE
    • Índice único
    • Rejeita duplicatas
    • Lança erro se houver repetição
LEVEL · soulevel.com.br

Item — ❌ ERRADO

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.

NÃO CAIA NESSA!

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