2011-08-31 12 views
10

Estoy trabajando en la creación de tablas temporales en el servidor sql. Creé la tabla temporal con éxito pero cuando trato de ver los datos, dice NOMBRE DE OBJETO NO VÁLIDO. ¿Alguien puede decir a los enemigos cuánto tiempo existen las tablas temporales? Si estoy conectado al servidor sql como ID de usuario - devloper y pwd = 0999 y alguna otra persona también ha iniciado sesión en el servidor SQL con las mismas credenciales, estas tablas temporales se eliminarán? My SQL es el siguiente:Tablas temporales en el servidor sql

SELECT net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID, 
     mst_temp_equation.EQ_ID 
INTO ##NT_MASTER_TEMP_EQUATION 
FROM mst_temp_equation INNER JOIN 
    net_node_model ON mst_temp_equation.TEMP_ID = net_node_model.TEMP_ID 
GROUP BY net_node_model.SYS_ID, net_node_model.NODE, mst_temp_equation.TEMP_ID, 
     mst_temp_equation.EQ_ID, mst_temp_equation.EQ_NAME, 
     mst_temp_equation.EQ_TYPE, mst_temp_equation.[OBJECT], 
     mst_temp_equation.VAR_TYPE, mst_temp_equation.VAR_NAME, 
     mst_temp_equation.VAR_SUBSET, mst_temp_equation.VAR_SET, 
     mst_temp_equation.RHS_RELN, mst_temp_equation.RHS_OBJECT, 
     mst_temp_equation.RHS_VAR_SET, mst_temp_equation.RHS_VAR_SUBSET, 
     mst_temp_equation.RHS_VAR_TYPE, mst_temp_equation.RHS_VAR_NAME, 
     mst_temp_equation.EQ_TP_OFFSET, mst_temp_equation.RHS_TP_OFFSET, 
     mst_temp_equation.RETAIN, mst_temp_equation.TIME_PRD, 
     mst_temp_equation.EQ_VAR_SUBTYPE, mst_temp_equation.RHS_VAR_SUBTYE; 
+1

¿Puede publicar el SQL que está utilizando? –

Respuesta

17

Si está utilizando una tabla temporal regular de #table, no será visible para cualquier otra sesión aparte de la que se creó el. Una vez que la sesión haya finalizado, la tabla será eliminada.

Si está utilizando una tabla temporal global ##table, estará visible para otras sesiones.

De MSDN - CREATE TABLE, bajo temporary tables:

tablas temporales globales se eliminan automáticamente cuando la sesión que creó los extremos de mesa y todas las demás tareas han dejado de hacer referencia a ellos.

+0

No estoy seguro de si uso # o ## si trato de seleccionar registros de mi tabla de temp usando selección de consulta dice NOMBRE DE OBJETO NO VÁLIDO – CPDS

+0

@ us111 - si la sesión en la que se creó estaba terminada y la tabla no está referenciada por cualquier otra tarea en ejecución, se eliminará automáticamente. – Oded

+0

No he cerrado la sesión ... Estoy haciendo algunas pruebas, así que primero ejecuto el procedimiento 1 almacenado que crea la tabla temporal 1 y luego trato de ejecutar la consulta de selección para ver los registros que dice NOMBRE DE OBJETO NO VÁLIDO. – CPDS

0

¿Está diciendo que ya ha creado la tabla ## NT_MASTER_TEMP_EQUATION y ahora está intentando insertarla? Si es así, use la sintaxis INSERT INTO ##NT_MASTER_TEMP_EQUATION SELECT ... en lugar de lo que tiene.

SELECT ... INTO ##temp FROM ... se usa para crear la tabla Y llenarla.


Además, tienen un pícaro , al final de su lista de SELECT (justo antes de la palabra clave INTO). Esto debe ser eliminado.

+0

el ',' es un error tipográfico ... no está allí en la consulta real. Sí, estoy creando e insertando los registros en la tabla. – CPDS

0

Si esta es la consulta exacta que utilizó, entonces creo que puede tener un error de sintaxis en la primera línea, parece que hay una coma adicional justo antes de la palabra clave INTO

...mst_temp_equation.EQ_ID, INTO ##NT_MASTER_TEMP_EQUATION 
         ^

No estoy seguro si este está causando el error NOMBRE DE OBJETO NO VÁLIDO o no

+0

lo siento, hay un error tipográfico que no es ',' después de EQ_ID – CPDS

Cuestiones relacionadas