Я використовую наступний код, щоб перевірити, чи існує тимчасова таблиця, і скинути таблицю, якщо вона існує, перш ніж створювати її знову. Це добре працює, поки я не змінюю стовпці. Якщо я додаю стовпчик пізніше, він видасть помилку із твердженням "недійсний стовпець". Будь ласка, дайте мені знати, що я роблю не так.
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
. Якщо транзакція пройде успішно, таблиця буде видалена. Якщо вона не вдасться, таблиця також буде відсутня (оскільки вона створена в рамках транзакції). У будь-якому випадку: Не потрібно перевіряти, чи таблиця вже існує.