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

È stato utile?

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.

  1. SELECT ... INTO #MyTable crea una tabella e riesce perché non esiste. Quindi un secondo SELECT ... INTO #MyTable cercherà di creare #MyTable, scoprire che esiste, e non riescono.

  2. Se si desidera eseguire un secondo SELECT nella stessa tabella, TRUNCATE la tabella, quindi utilizzare SELECT ... INTO EXISTING TABLE #MyTable.

  3. In alternativa DROP TABLE e saltare il modificatore EXISTING TABLE.

  4. Se si desidera che la tabella per contenere la somma di più SELECTS, ovviamente, saltare la TRUNCATE.

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top