2011-08-31 23 views
10

Sto lavorando alla creazione di tabelle temporanee in SQL Server. Ho creato la tabella temporanea con successo ma quando provo a visualizzare i dati, dice NOME OGGETTO NON VALIDO. Qualcuno può dire per quanto tempo esistono le tabelle temporanee? Se sono connesso a SQL Server come userid - devloper e pwd = 0999 e qualcun altro è anche connesso al server SQL con le stesse credenziali, queste tabelle temporanee verranno cancellate? My SQL è la seguente:Tabelle temporanee in sql server

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

Puoi pubblicare l'SQL che stai utilizzando? –

risposta

17

Se si utilizza una tabella temporanea regolare #table, non sarà visibile a qualsiasi altra sessione a parte quello che è stato creato il. Una volta terminata la sessione, la tabella verrà rimossa.

Se si utilizza una tabella temporanea globale ##table, sarà visibile ad altre sessioni.

Da MSDN - CREATE TABLE, sotto temporary tables:

tabelle temporanee globali vengono eliminate automaticamente quando la sessione che ha creato le estremità tavolo e tutti gli altri compiti hanno smesso di riferimento.

+0

Non sono sicuro se uso # o ## se provo a selezionare i record dalla mia tabella tem utilizzando select query dice INVALID OBJECT NAME – CPDS

+0

@ us111 - se la sessione su cui è stata creata è stata completata e la tabella non è referenziata da qualsiasi altra attività in esecuzione, verrà automaticamente eliminata. – Oded

+0

Non ho chiuso la sessione ... Sto facendo alcuni test quindi prima di tutto eseguo la procedura memorizzata 1 che crea la tabella temporanea1 e quindi cerco immediatamente di eseguire la query di selezione per vedere i record che dice NOME OGGETTO NON VALIDO. – CPDS

0

Stai dicendo che hai già creato la tabella ## NT_MASTER_TEMP_EQUATION e ora stai cercando di inserirla? In tal caso, utilizzare la sintassi INSERT INTO ##NT_MASTER_TEMP_EQUATION SELECT ... anziché quello che si ha.

SELECT ... INTO ##temp FROM ... viene utilizzato per creare la tabella E popolarlo.


Inoltre, è un ladro , alla fine della vostra lista SELECT (appena prima la parola INTO). Questo dovrebbe essere rimosso.

+0

il ',' è typo ... non è lì nella query reale. Sì, sto creando e inserendo i record nella tabella. – CPDS

0

Se questa è la query esatto che hai usato, allora penso che si può avere un errore di sintassi nella prima riga, sembra che non v'è una virgola in più a destra prima la parola INTO

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

Non sono sicuro se questo sta causando l'errore INVALID OBJECT NAME o no

+0

scusa c'è un errore di battitura non c'è ',' dopo EQ_ID – CPDS

Problemi correlati