Unofficial Content

Temporary table (Books Online - SQLServer)
A table placed in the temporary database, tempdb, and erased at the end of the session.

You can create local and global temporary tables. Local temporary tables are visible only in the current session; global temporary tables are visible to all sessions.

Prefix local temporary table names with a single number sign (#table_name), and prefix global temporary table names with a double number sign (##table_name).

Con GeneXus hemos utilizado las tablas temporarias de usuario (cada usuario ve una version diferente de dicha tabla).
Son muy utiles para la realizacion de reportes, resolver agrecaciones (sum, avg, rankings) que son dificiles de realizar hoy con la sentencias que tiene GeneXus .

La forma de trabajar en SQLServer es asi:

Se define una transaccion normal, con los atributos que interesan. A la tabla se le asocia una dataview, cuyo nombre empieze con el caracter '#'.
Antes de utilizarla se hace una sentencia

SQL 'Create table #AuxTot (CliId C(10), TotVta SmallInt)'
commit

De esta forma, todos los usuarios puede utilizar esta tabla, y cada uno vera su version diferente.

Es importante la realizacion de Commit al la creacion de tablas, pues se producen bloqueos en las tablas de sysobject y sysindexes, que producen bloqueos.

Es conveniente centralizar la creacion de las tablas temporales para todos los usuarios, en un solo procedure, que se ejecute, al realizar la conexion a la base de datos, para evitar colisiones o lockeos en el futuro.

Manejo de Tablas temporarias en Oracle
En Oracle, hay que borrar la tabla creada por GeneXus y volver a recrearla con la opcion de que el contenido se pierda al hacer la desconexion o que se pierda al hacer commit.

Manejo de tablas temporarias en DB2
El manejo con DB2, es parecido a SQLserver.
Last update: February 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant