Tôi đang sử dụng đoạn mã sau để kiểm tra xem bảng tạm thời có tồn tại không và thả bảng nếu nó tồn tại trước khi tạo lại. Nó hoạt động tốt miễn là tôi không thay đổi các cột. Nếu tôi thêm một cột sau, nó sẽ báo lỗi "cột không hợp lệ". Xin vui lòng cho tôi biết những gì tôi đang làm sai.
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
. Nếu giao dịch thành công, bảng sẽ bị xóa. Nếu thất bại, bảng cũng sẽ biến mất (vì nó được tạo trong giao dịch). Trong mọi trường hợp: Không cần kiểm tra xem bảng đã tồn tại chưa.