Questão de Banco de Dados — SQL Server — CESPE / CEBRASPE 2025
Banco de Dados›SQL 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.
CCerto
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
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.