Estoy usando el siguiente código para verificar si la tabla temporal existe y soltar la tabla si existe antes de crear nuevamente. Funciona bien siempre que no cambie las columnas. Si agrego una columna más tarde, aparecerá un error que dice "columna no válida". Por favor, hágame saber lo que estoy haciendo mal.
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
. Si la transacción tiene éxito, la tabla se eliminará. Si falla, la tabla también desaparecerá (ya que se creó dentro de la transacción). En cualquier caso: no es necesario verificar si la tabla ya existe.