Я использую следующий код, чтобы проверить, существует ли временная таблица и удалить таблицу, если она существует, прежде чем создавать снова. Работает нормально, пока я не меняю столбцы. Если я добавлю столбец позже, он выдаст ошибку «неверный столбец». Пожалуйста, дайте мне знать, что я делаю неправильно.
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
. Если транзакция завершится успешно, таблица будет удалена. Если произойдет сбой, таблица также исчезнет (поскольку она была создана в транзакции). В любом случае: нет необходимости проверять, существует ли таблица.