Partilhar via


Tipos de cursor

O ODBC define quatro tipos de cursor suportados pelo Microsoft SQL Server e pelo driver ODBC do SQL Server Native Client. Esses cursores variam quanto à capacidade de detecção de alterações no conjunto de resultados e nos recursos que consomem, como memória e espaço no tempdb. Um cursor pode detectar alterações nas linhas apenas quando ele tenta buscar essas linhas novamente; não há como a fonte de dados notificar o cursor dessas alterações nas linhas que estão sendo buscadas atualmente. A capacidade de um cursor de detectar alterações que não foram feitas pelo cursor também é influenciada pelo nível de isolamento da transação.

Estes são os quatro tipos de cursor ODBC suportados pelo SQL Server:

  • Cursores de somente avanço não suportam o recurso de rolagem; eles suportam apenas a busca de linhas em série do início ao fim do cursor.

  • Os cursores estáticos são incorporados no tempdb quando o cursor é aberto. Eles sempre exibem o conjunto de resultados da forma como ele estava quando o cursor foi aberto. Eles nunca refletem as alterações nos dados. Os cursores estáticos do SQL Server são sempre somente leitura. Pelo fato de um cursor de servidor estático ser criado como uma tabela de trabalho no tempdb, o tamanho do conjunto de resultados do cursor não pode exceder o tamanho máximo de linhas permitido por SQL Server.

  • Os cursores controlados por conjunto de chaves têm a associação (membership) e a ordem das linhas fixas no conjunto de resultados quando o cursor é aberto. As alterações nas colunas não-chave são visíveis pelo cursor.

  • Os cursores dinâmicos são o oposto dos cursores estáticos. Eles refletem todas as alterações feitas nas linhas de seu conjunto de resultados. Os valores de dados, a ordem e a associação das linhas do conjunto de resultados podem ser alterados em cada busca.

Consulte também

Conceitos