Sybase Dropping tabella temporanea
-
27-09-2019 - |
Domanda
Qualcuno faccia un problema quando si elimina una tabella temporanea al Sybase ASE 12 persiste ancora in una sessione in corso. Così si incontrano "tabella esiste già" quando si cerca di selezionare i dati in esso di nuovo
Soluzione
Bene, è necessario leggere i manuali, almeno la sintassi per i comandi che si prevede di utilizzare, prima di scrivere il codice. In caso contrario, si dovrà affrontare i problemi ad ogni turno. Dipende da ciò che si sta cercando di fare.
-
SELECT ... INTO #MyTable
crea una tabella e riesce perché non esiste. Quindi un secondoSELECT ... INTO #MyTable
cercherà di creare#MyTable
, scoprire che esiste, e non riescono. -
Se si desidera eseguire un secondo
SELECT
nella stessa tabella,TRUNCATE
la tabella, quindi utilizzareSELECT ... INTO EXISTING TABLE #MyTable
. -
In alternativa
DROP TABLE
e saltare il modificatoreEXISTING TABLE
. -
Se si desidera che la tabella per contenere la somma di più
SELECTS
, ovviamente, saltare laTRUNCATE
.
Altri suggerimenti
faccio di solito in questo modo:
1) CREATE TABLE #temptable ( ....
)
INSERT INTO #temptable SELEZIONE .....
Questo non darà mai l'errore.
Questo risolve un altro possibile errore. Se la clausola WHERE che accompagna i rendimenti "selezionare in" nessuna riga, la tabella temporanea non avrà zero righe, ma la tabella temporanea non verrà creato a tutti. Questo potrebbe rendere il proc memorizzato saltare in aria in seguito.