Estou usando o código a seguir para verificar se a tabela temporária existe e soltar a tabela, se existir, antes de criar novamente. Funciona bem desde que eu não mude as colunas. Se eu adicionar uma coluna posteriormente, ocorrerá um erro dizendo "coluna inválida". Por favor, deixe-me saber o que estou fazendo de errado.
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 a transação for bem-sucedida, a tabela será removida. Se falhar, a tabela também desaparecerá (desde que foi criada dentro da transação). De qualquer forma: Não há necessidade de verificar se a tabela já existe.