Compartilhar via


Estrutura JET_OPENTEMPORARYTABLE

Aplica-se a: Windows | Windows Server

Estrutura JET_OPENTEMPORARYTABLE

A estrutura JET_OPENTEMPORARYTABLE contém uma coleção facilmente extensível de parâmetros para a função JET_OPENTEMPORARYTABLE . Essa estrutura é o equivalente à tabela temporária da estrutura JET_TABLECREATE .

Windows Vista: A estrutura JET_OPENTEMPORARYTABLE é introduzida no Windows Vista.

    typedef struct tagJET_OPENTEMPORARYTABLE {
      unsigned long cbStruct;
      const JET_COLUMNDEF* prgcolumndef;
      unsigned long ccolumn;
      JET_UNICODEINDEX* pidxunicode;
      JET_GRBIT grbit;
      JET_COLUMNID* prgcolumnid;
      unsigned long cbKeyMost;
      unsigned long cbVarSegMac;
      JET_TABLEID tableid;
    } JET_OPENTEMPORARYTABLE;

Membros

Cbstruct

O tamanho dessa estrutura em bytes (para expansão futura). Ele deve ser definido como sizeof( JET_TABLECREATE ) em bytes.

prgcolumndef

Definições de coluna para as colunas criadas na tabela temporária.

Existem limitações importantes para as opções de definição de coluna que são usadas com uma tabela temporária. Consulte a seção Comentários para obter mais informações.

Além das opções de definição de coluna usuais, zero ou mais das opções a seguir também podem ser especificadas relevantes apenas no contexto de uma tabela temporária.

Valor

Significado

JET_bitColumnTTDescending

A ordem de classificação da coluna de chave para a tabela temporária deve ser decrescente em vez de crescente. Se essa opção for especificada sem JET_bitColumnTTKey essa opção será ignorada.

JET_bitColumnTTKey

A coluna será uma coluna de chave para a tabela temporária.

A ordem das definições de coluna com essa opção especificada na matriz de entrada determinará a precedência de cada coluna de chave para a tabela temporária. A primeira definição de coluna na matriz que tem essa opção definida será a coluna de chave mais significativa e assim por diante. Se mais colunas de chave forem solicitadas do que o mecanismo de banco de dados, essa opção será ignorada para as colunas de chave não compatíveis.

ccolumn

Consulte prgcolumndef.

pidxunicode

A ID de localidade e os sinalizadores de normalização a serem usados para comparar quaisquer dados de coluna de chave Unicode na tabela temporária.

Quando esse parâmetro não estiver presente e quando o parâmetro lcid não estiver presente, o LCID padrão será usado para comparar todas as colunas de chave Unicode na tabela temporária. O LCID padrão é a localidade em inglês dos EUA.

Quando esse parâmetro não estiver presente, os sinalizadores de normalização padrão serão usados para comparar quaisquer dados de coluna de chave Unicode na tabela temporária. Os sinalizadores de normalização padrão são: NORM_IGNORECASE, NORM_IGNOREKANATYPE e NORM_IGNOREWIDTH.

grbit

Um grupo de bits que especifica zero ou mais das opções a seguir.

Valor

Significado

JET_bitTTIndexed

Essa opção solicita que a tabela temporária seja flexível o suficiente para permitir o uso do JetSeek para pesquisar registros por chave de índice.

Se essa funcionalidade não for necessária, é melhor não solicitá-la. Se essa funcionalidade não for solicitada, o gerenciador de tabelas temporário poderá escolher uma estratégia para gerenciar a tabela temporária que resultará em um desempenho aprimorado.

JET_bitTTUnique

Solicita que os registros com chaves de índice duplicadas sejam removidos do conjunto final de registros na tabela temporária.

Antes do Windows Server 2003, o mecanismo de banco de dados sempre presumia que essa opção estava em vigor devido ao fato de que todos os índices clusterizados também devem ser uma chave primária e, portanto, devem ser exclusivos. A partir do Windows Server 2003, agora é possível criar uma tabela temporária que não remove duplicatas quando a opção JET_bitTTForwardOnly também é especificada.

Não é possível saber qual duplicata terá êxito e quais duplicatas serão descartadas, em geral. No entanto, quando a opção JET_bitTTErrorOnDuplicateInsertion for solicitada, o primeiro registro com uma determinada chave de índice a ser inserida na tabela temporária sempre terá êxito.

JET_bitTTUpdatable

Solicita que a tabela temporária seja flexível o suficiente para permitir que os registros que foram inseridos anteriormente sejam alterados posteriormente. Se essa funcionalidade não for necessária, é melhor não solicitá-la.

Se essa funcionalidade não for solicitada, o gerenciador de tabelas temporário poderá escolher uma estratégia para gerenciar a tabela temporária que resultará em um desempenho aprimorado.

JET_bitTTScrollable

Solicita que a tabela temporária seja flexível o suficiente para permitir que os registros sejam verificados em ordem e direção arbitrárias usando JetMove.

Se essa funcionalidade não for necessária, é melhor não solicitá-la. Se essa funcionalidade não for solicitada, o gerenciador de tabelas temporário poderá escolher uma estratégia para gerenciar a tabela temporária que resultará em um desempenho aprimorado.

JET_bitTTSortNullsHigh

Solicita que os valores de coluna de chave NULL classifiquem mais perto do final do índice do que os valores de coluna de chave não NULL.

JET_bitTTForceMaterialization

Força o gerente de tabela temporário a abandonar a busca pela melhor estratégia para usar o gerenciamento da tabela temporária que resultará em um desempenho aprimorado.

JET_bitTTErrorOnDuplicateInsertion

Qualquer tentativa de inserir um registro com a mesma chave de índice que um registro inserido anteriormente falhará imediatamente com JET_errKeyDuplicate. Se essa opção não for solicitada, uma duplicata será detectada imediatamente e falhará ou será removida silenciosamente mais tarde, dependendo da estratégia escolhida pelo mecanismo de banco de dados para implementar a tabela temporária, com base na funcionalidade solicitada.

Se essa funcionalidade não for necessária, é melhor não solicitá-la. Se essa funcionalidade não for solicitada, o gerenciador de tabelas temporário poderá escolher uma estratégia para gerenciar a tabela temporária que resultará em um desempenho aprimorado.

JET_bitTTForwardOnly

A tabela temporária só será criada se o gerenciador de tabelas temporário puder usar a implementação otimizada para resultados de consulta intermediários. Se qualquer característica da tabela temporária impedir o uso dessa otimização, a operação falhará com JET_errCannotMaterializeForwardOnlySort.

Um efeito colateral dessa opção é permitir que a tabela temporária contenha registros com chaves de índice duplicadas. Consulte JET_bitTTUnique para obter mais informações.

Windows Server 2003: Essa opção só está disponível no Windows Server 2003 e versões posteriores.

prgcolumnid

O buffer de saída que recebe a matriz de IDs de coluna geradas durante a criação da tabela temporária.

As IDs de coluna nessa matriz corresponderão exatamente à matriz de entrada de definições de coluna. Como resultado, o tamanho desse buffer deve corresponder ao tamanho da matriz de entrada.

cbKeyMost

O tamanho máximo de uma chave que representa uma determinada linha.

O tamanho máximo da chave pode ser definido para controlar como as chaves são truncadas. O truncamento de chave é importante porque pode afetar quando as linhas são consideradas distintas.

Se esse parâmetro for definido como 0 ou JET_cbKeyMostMin (255), o tamanho máximo da chave e sua semântica permanecerão idênticos ao tamanho máximo da chave compatível com o Windows Server 2003 e versões anteriores. Esse parâmetro também pode ser definido como um valor maior como uma função do tamanho da página do banco de dados para a instância (JET_paramDatabasePageSize). Consulte JET_paramKeyMost para obter mais informações.

cbVarSegMac

A quantidade máxima de dados que serão usados de qualquer coluna de comprimento variável para construir uma chave para uma determinada linha.

Esse parâmetro pode ser usado para controlar a quantidade de espaço de chave consumida por qualquer coluna de chave específica. Esse limite está em bytes. Se esse parâmetro for zero ou for o mesmo que o parâmetro cbKeyMost , nenhum limite estará em vigor.

Tableid

O identificador de tabela para a tabela temporária criada como resultado de uma chamada bem-sucedida para JetOpenTemporaryTable.

Requisitos

Requisito Valor

Cliente

Requer o Windows Vista.

Servidor

Requer o Windows Server 2008.

Cabeçalho

Declarado em Esent.h.

Consulte Também

JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Parâmetros extensíveis do sistema do mecanismo de armazenamento