Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — VUNESP 2023

Banco de DadosSQL Server
Código
vu197126
Banca
VUNESP
Órgão
Pref SBO
Ano
2023
Cargo
Ana ( )
Observe o código de criação de uma tabela no SQL Server 2008 R2 apresentado a seguir.   Assinale a alternativa que indica o campo cujo conteúdo será incrementado automaticamente a cada inserção de registro na tabela.Imagem associada para resolução da questão
  1. ACategoria.
  2. BIdCategoria.
  3. CDataCriacao.
  4. DPK_Categoria.
  5. EPrimary.
Revelar gabarito e comentário

GabaritoB — IdCategoria.

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

Identificando colunas de autoincremento no SQL Server

Gabarito: letra B. No SQL Server, o incremento automático de uma coluna é definido pela propriedade IDENTITY, aplicada a uma coluna numérica (tipicamente a chave primária). No código de criação da tabela, a coluna IdCategoria é a que recebe essa propriedade, sendo incrementada automaticamente a cada inserção — é exatamente o que a alternativa B afirma. As demais alternativas apontam para outros elementos da definição da tabela (colunas comuns, nome da constraint, palavra-chave), que não possuem incremento automático.

A propriedade IDENTITY é um recurso específico do SQL Server (e de outros SGBDs, como o MySQL com AUTO_INCREMENT) que gera valores sequenciais automaticamente para uma coluna. Ela é aplicada na definição da coluna, geralmente junto com a restrição PRIMARY KEY, e garante que cada nova linha receba um valor único e crescente, sem que o usuário precise informá-lo no comando INSERT. Essa é uma das formas mais comuns de implementar chaves primárias sintéticas (surrogate keys) em bancos relacionais.

No comando CREATE TABLE, a sintaxe típica é: IdCategoria INT IDENTITY(1,1) PRIMARY KEY. O primeiro parâmetro (1) indica o valor inicial, e o segundo (1) indica o incremento a cada inserção. Assim, a primeira linha recebe 1, a segunda 2, e assim por diante. É importante notar que a propriedade IDENTITY não é uma restrição (constraint) como PRIMARY KEY ou UNIQUE — é uma propriedade da coluna que define seu comportamento de geração de valores.

A banca explora aqui a confusão entre os elementos da definição da tabela: o nome da coluna, o tipo de dado, a restrição de chave primária e o nome da constraint. O candidato que não conhece a sintaxe do IDENTITY pode se perder entre as alternativas, especialmente porque PK_Categoria parece um nome de constraint e Primary parece uma palavra-chave. A chave para acertar é reconhecer que o incremento automático é uma característica da coluna em si, não da constraint nem do nome da tabela.

Guarde o critério decisivo: a coluna com autoincremento é aquela que possui a propriedade IDENTITY na sua definição — é nela que a banca vai apontar a alternativa correta.

Alternativa A — ❌ Incorreta

Categoria é uma coluna comum da tabela, provavelmente do tipo texto (VARCHAR/NVARCHAR), que armazena o nome da categoria. Colunas de texto não podem receber a propriedade IDENTITY, pois ela exige um tipo numérico. Portanto, não há incremento automático nesse campo.

Alternativa B — ✅ Correta ⟵ GABARITO

IdCategoria é a coluna que recebe a propriedade IDENTITY, sendo incrementada automaticamente a cada inserção. É o campo que identifica unicamente cada registro, funcionando como chave primária sintética. A sintaxe típica seria IdCategoria INT IDENTITY(1,1) PRIMARY KEY, onde o primeiro 1 é o valor inicial e o segundo é o incremento.

Alternativa C — ❌ Incorreta

DataCriacao é uma coluna do tipo data/hora que armazena a data de criação do registro. Embora possa ter um valor padrão (DEFAULT GETDATE()), ela não é incrementada automaticamente — o incremento é uma característica exclusiva de colunas numéricas com IDENTITY. A data é definida pelo sistema ou pelo usuário, mas não segue uma sequência numérica.

Alternativa D — ❌ Incorreta

PK_Categoria é o nome da constraint PRIMARY KEY, que define a chave primária da tabela. Uma constraint é uma regra de integridade, não uma coluna — portanto, não pode ser incrementada. A confusão aqui é pensar que o nome da constraint indica uma coluna, mas na verdade ele apenas nomeia a restrição que garante a unicidade e não-nulidade da chave.

Alternativa E — ❌ Incorreta

Primary é a palavra-chave usada na definição da restrição PRIMARY KEY, não uma coluna da tabela. Ela indica que a coluna (ou conjunto de colunas) seguinte é a chave primária. Como é apenas um termo da sintaxe SQL, não possui incremento automático. A pegadinha está em confundir a palavra-chave com um campo real da tabela.

NÃO CAIA NESSA!

A banca mistura elementos da definição da tabela — colunas reais (Categoria, DataCriacao), nome de constraint (PK_Categoria) e palavra-chave (Primary) — para confundir quem não sabe que o autoincremento é uma propriedade da coluna (IDENTITY), não da constraint nem da sintaxe. O candidato que decora a sintaxe sem entender o conceito pode marcar PK_Categoria por parecer um nome de campo. Com treino, você reconhece que o incremento automático está sempre ligado à coluna numérica que recebe a propriedade IDENTITY 💪.

PEGA ESSA DICA!

Para identificar a coluna de autoincremento em uma questão de CREATE TABLE, procure pela palavra-chave IDENTITY (SQL Server) ou AUTO_INCREMENT (MySQL) na definição da coluna. Ela sempre acompanha uma coluna numérica, geralmente a chave primária. Se a questão não mostrar a sintaxe completa, lembre-se: o autoincremento é uma propriedade da coluna, não da constraint.

Gabarito: letra B

Link permanente: /questoes/vu197126