Pular para o conteúdo principal

Questão de Banco de Dados — SQL Server — CESPE / CEBRASPE 2025

Banco de DadosSQL Server
Código
ce220601
Banca
CESPE / CEBRASPE
Órgão
TRF - 6ª REGIÃO
Ano
2025
Nível
Médio
Cargo
Técnico Judiciário – Área: Apoio Especializado – Especialidade: Desenvolvimento de Sistemas de Informação
A respeito de PostgreSQL, de SQL Server e de MySQL, julgue o item a seguir.No SQL Server, o keyset-driven cursor mantém uma cópia completa dos dados no momento em que é aberto, e qualquer alteração feita nos dados subjacentes não é refletida no cursor, tornando-o semelhante a um static cursor.
  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”.

Cursors no SQL Server: Keyset-Driven vs. Static

Gabarito: Errado (E). A afirmação confunde o comportamento do keyset-driven cursor com o do static cursor. O keyset-driven cursor não mantém uma cópia completa dos dados; ele armazena apenas um conjunto de chaves (keyset) para identificar as linhas. Alterações nos dados subjacentes (como atualizações de colunas não-chave) são refletidas no cursor, diferentemente do static cursor, que realmente copia os dados e não reflete mudanças.

Análise da afirmação

O enunciado diz que "o keyset-driven cursor mantém uma cópia completa dos dados no momento em que é aberto, e qualquer alteração feita nos dados subjacentes não é refletida no cursor, tornando-o semelhante a um static cursor". Isso está errado pelos seguintes motivos:

  • Keyset-driven cursor: Ao ser aberto, ele captura as chaves primárias (ou identificadores únicos) de todas as linhas que se encaixam no conjunto de resultados. As alterações nos dados (exceto em chaves) são visíveis ao cursor, e linhas deletadas são ignoradas. Novas linhas só são vistas com uma nova abertura. Ele não copia os dados completos.

  • Static cursor: Este sim faz uma cópia instantânea (snapshot) completa dos dados em uma tabela temporária. Nenhuma alteração posterior (inserção, atualização, exclusão) é refletida no cursor. É a descrição que o enunciado atribuiu incorretamente ao keyset.

Portanto, o keyset-driven não é semelhante a static; cada um tem comportamento distinto.

Característica

Keyset-Driven Cursor

Static Cursor

Dados armazenados ao abrir

Apenas as chaves (keyset) das linhas

Cópia completa (snapshot) dos dados

Reflete alterações nos dados subjacentes

Sim (exceto alterações nas chaves)

Não

Reflete novas linhas inseridas

Não (apenas com nova abertura)

Não

Reflete linhas deletadas

Sim (linhas deletadas são ignoradas)

Não

1Forward-only
Só avança
Sem snapshot
2Static
Snapshot completo
Não reflete alterações
3Keyset-driven
Armazena chaves
Reflete alterações nos dados
Novas linhas não visíveis
4Dynamic
Reflete todas as alterações
Cursors (SQL Server)
LEVELsoulevel.com.br
Cursors (SQL Server): Forward-only (Só avança, Sem snapshot); Static (Snapshot completo, Não reflete alterações); Keyset-driven (Armazena chaves, Reflete alterações nos dados, Novas linhas não visíveis); Dynamic (Reflete todas as alterações)
PEGA ESSA DICA!

Para fixar: no SQL Server, os tipos de cursores são:

  • Forward-only: só avança, sem snapshot.

  • Static: snapshot completo, sem refletir alterações.

  • Keyset: armazena chaves, reflete alterações nos dados (mas não novas linhas).

  • Dynamic: reflete todas as alterações (inserções, exclusões, atualizações) no cursor.

Conclusão: A descrição corresponde ao static cursor, não ao keyset-driven. Item Errado.

Gabarito: E (Errado).

Link permanente: /questoes/ce220601