Geçici tablo olup olmadığını kontrol etmek için aşağıdaki kodu kullanıyorum ve yeniden oluşturmadan önce varsa tablo bırakın. Sütunları değiştirmediğim sürece iyi çalışıyor. Daha sonra bir sütun eklersem, "geçersiz sütun" diyerek bir hata verir. Lütfen neyi yanlış yaptığımı bildirin.
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
. İşlem başarılı olursa, tablo kaldırılır. Başarısız olursa, tablo da (işlem içinde oluşturulduğundan beri) gider. Her durumda: Tablonun zaten var olup olmadığını kontrol etmeye gerek yoktur.