Sto usando il seguente codice per verificare se esiste la tabella temporanea e rilasciarla se esiste prima di crearla nuovamente. Funziona bene finché non cambio le colonne. Se aggiungo una colonna in seguito, verrà visualizzato un errore che dice "colonna non valida". Per favore fatemi sapere cosa sto facendo di sbagliato.
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
)
select company, stepid, fieldid from #Results
--Works fine to this point
IF OBJECT_ID('tempdb..#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results
(
Company CHAR(3),
StepId TINYINT,
FieldId TINYINT,
NewColumn NVARCHAR(50)
)
select company, stepid, fieldid, NewColumn from #Results
--Does not work
BEGIN TRANSACTION; CREATE TABLE #Results; ...; DROP TABLE #Results; COMMIT
. Se la transazione ha esito positivo, la tabella verrà rimossa. Se fallisce, anche la tabella sparirà (poiché è stata creata all'interno della transazione). In ogni caso: non è necessario verificare se la tabella esiste già.