Saya menggunakan kode berikut untuk memeriksa apakah tabel sementara ada dan drop tabel jika ada sebelum membuat lagi. Ini berfungsi dengan baik selama saya tidak mengubah kolom. Jika saya menambahkan kolom nanti, itu akan memberikan kesalahan mengatakan "kolom tidak valid". Tolong beri tahu saya apa yang saya lakukan salah.
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
. Jika transaksi berhasil, tabel akan dihapus. Jika gagal, tabel akan hilang juga (karena dibuat dalam transaksi). Dalam hal apa pun: Tidak perlu memeriksa apakah tabel sudah ada.