Compartir a través de


estructura de JET_OPENTEMPORARYTABLE

Se aplica a: Windows | Windows Server

estructura de JET_OPENTEMPORARYTABLE

La estructura JET_OPENTEMPORARYTABLE contiene una colección fácilmente extensible de parámetros para la función JET_OPENTEMPORARYTABLE . Esta estructura es el equivalente a la tabla temporal de la estructura JET_TABLECREATE .

Windows Vista: La estructura JET_OPENTEMPORARYTABLE se introduce en 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;

Miembros

cbStruct

Tamaño de esta estructura en bytes (para la expansión futura). Debe establecerse en sizeof( JET_TABLECREATE ) en bytes.

prgcolumndef

Definiciones de columna para las columnas creadas en la tabla temporal.

Existen limitaciones importantes para las opciones de definición de columna que se usan con una tabla temporal. Vea la sección Comentarios para obtener más información.

Además de las opciones de definición de columna habituales, también se pueden especificar cero o más de las opciones siguientes que solo son relevantes en el contexto de una tabla temporal.

Valor

Significado

JET_bitColumnTTDescending

El criterio de ordenación de la columna de clave para la tabla temporal debe ser descendente en lugar de ascendente. Si se especifica esta opción sin JET_bitColumnTTKey, esta opción se omite.

JET_bitColumnTTKey

La columna será una columna de clave para la tabla temporal.

El orden de las definiciones de columna con esta opción especificada en la matriz de entrada determinará la prioridad de cada columna de clave para la tabla temporal. La primera definición de columna de la matriz que tiene este conjunto de opciones será la columna de clave más significativa, etc. Si se solicitan más columnas de clave de las que puede admitir el motor de base de datos, esta opción se omite para las columnas de clave no compatibles.

ccolumn

Consulte prgcolumndef.

pidxunicode

El identificador de configuración regional y las marcas de normalización que se usarán para comparar los datos de columna de clave Unicode de la tabla temporal.

Cuando este parámetro no está presente y cuando el parámetro lcid no está presente, se usará el LCID predeterminado para comparar las columnas de clave Unicode de la tabla temporal. El LCID predeterminado es la configuración regional en inglés de EE. UU.

Cuando este parámetro no está presente, se usarán las marcas de normalización predeterminadas para comparar los datos de columna de clave Unicode de la tabla temporal. Las marcas de normalización predeterminadas son: NORM_IGNORECASE, NORM_IGNOREKANATYPE y NORM_IGNOREWIDTH.

grbit

Un grupo de bits que especifica cero o más de las siguientes opciones.

Valor

Significado

JET_bitTTIndexed

Esta opción solicita que la tabla temporal sea lo suficientemente flexible como para permitir el uso de JetSeek para buscar registros por clave de índice.

Si esta funcionalidad no es necesaria, es mejor no solicitarla. Si no se solicita esta funcionalidad, es posible que el administrador de tablas temporales pueda elegir una estrategia para administrar la tabla temporal que dará como resultado un rendimiento mejorado.

JET_bitTTUnique

Las solicitudes que registran con claves de índice duplicadas se quitan del conjunto final de registros de la tabla temporal.

Antes de Windows Server 2003, el motor de base de datos siempre supone que esta opción está en vigor debido al hecho de que todos los índices agrupados también deben ser una clave principal y, por tanto, deben ser únicos. A partir de Windows Server 2003, ahora es posible crear una tabla temporal que no quite duplicados cuando también se especifique la opción JET_bitTTForwardOnly.

No es posible saber qué duplicado se realizará correctamente y qué duplicados se descartarán, en general. Sin embargo, cuando se solicita la opción JET_bitTTErrorOnDuplicateInsertion, el primer registro con una clave de índice determinada que se va a insertar en la tabla temporal siempre se realizará correctamente.

JET_bitTTUpdatable

Solicita que la tabla temporal sea lo suficientemente flexible como para permitir que los registros que se hayan insertado previamente se cambien posteriormente. Si esta funcionalidad no es necesaria, es mejor no solicitarla.

Si no se solicita esta funcionalidad, es posible que el administrador de tablas temporales pueda elegir una estrategia para administrar la tabla temporal que dará como resultado un rendimiento mejorado.

JET_bitTTScrollable

Solicita que la tabla temporal sea lo suficientemente flexible como para permitir que los registros se examinen en orden arbitrario y dirección mediante JetMove.

Si esta funcionalidad no es necesaria, es mejor no solicitarla. Si no se solicita esta funcionalidad, es posible que el administrador de tablas temporales pueda elegir una estrategia para administrar la tabla temporal que dará como resultado un rendimiento mejorado.

JET_bitTTSortNullsHigh

Solicita que los valores de columna de clave NULL se ordenan más cerca del final del índice que los valores de columna de clave que no son NULL.

JET_bitTTForceMaterialization

Obliga al administrador de tablas temporales a abandonar la búsqueda de la mejor estrategia para usar la administración de la tabla temporal que dará como resultado un rendimiento mejorado.

JET_bitTTErrorOnDuplicateInsertion

Cualquier intento de insertar un registro con la misma clave de índice que un registro insertado anteriormente producirá un error inmediatamente con JET_errKeyDuplicate. Si no se solicita esta opción, se detecta un duplicado inmediatamente y se produce un error, o se quita silenciosamente más adelante, en función de la estrategia elegida por el motor de base de datos para implementar la tabla temporal, en función de la funcionalidad solicitada.

Si esta funcionalidad no es necesaria, es mejor no solicitarla. Si no se solicita esta funcionalidad, es posible que el administrador de tablas temporales pueda elegir una estrategia para administrar la tabla temporal que dará como resultado un rendimiento mejorado.

JET_bitTTForwardOnly

La tabla temporal solo se crea si el administrador de tablas temporales puede usar la implementación optimizada para los resultados intermedios de la consulta. Si alguna característica de la tabla temporal impediría el uso de esta optimización, se producirá un error en la operación con JET_errCannotMaterializeForwardOnlySort.

Un efecto secundario de esta opción es permitir que la tabla temporal contenga registros con claves de índice duplicadas. Consulte JET_bitTTUnique para obtener más información.

Windows Server 2003: Esta opción solo está disponible en Windows Server 2003 y versiones posteriores.

prgcolumnid

Búfer de salida que recibe la matriz de identificadores de columna generados durante la creación de la tabla temporal.

Los identificadores de columna de esta matriz se corresponderán exactamente con la matriz de entrada de definiciones de columna. Como resultado, el tamaño de este búfer debe corresponder al tamaño de la matriz de entrada.

cbKeyMost

Tamaño máximo de una clave que representa una fila determinada.

El tamaño máximo de clave se puede establecer para controlar cómo se truncan las claves. El truncamiento de claves es importante porque puede afectar cuando las filas se consideran distintas.

Si este parámetro se establece en 0 o JET_cbKeyMostMin (255), el tamaño máximo de clave y su semántica seguirá siendo idéntico al tamaño máximo de clave admitido por Windows Server 2003 y versiones anteriores. Este parámetro también se puede establecer en un valor mayor como una función del tamaño de página de la base de datos para la instancia (JET_paramDatabasePageSize). Consulte JET_paramKeyMost para obtener más información.

cbVarSegMac

La cantidad máxima de datos que se usarán desde cualquier columna de longitud variable para construir una clave para una fila determinada.

Este parámetro se puede usar para controlar la cantidad de espacio de clave consumido por cualquier columna de clave determinada. Este límite está en bytes. Si este parámetro es cero o es el mismo que el parámetro cbKeyMost , no se aplica ningún límite.

tableid

Identificador de tabla de la tabla temporal creada como resultado de una llamada correcta a JetOpenTemporaryTable.

Requisitos

Requisito Value

Cliente

Requiere Windows Vista.

Servidor

Requiere Windows Server 2008.

Encabezado

Declarado en Esent.h.

Consulte también

JET_TABLECREATE
JET_COLUMNDEF
JET_UNICODEINDEX
JET_GRBIT
JET_COLUMNID
JET_TABLEID
JetOpenTemporaryTable
Parámetros del sistema del motor de almacenamiento extensible