Các bảng tạm thời cục bộ (bắt đầu bằng #) được giới hạn trong phiên của bạn; các phiên khác, ngay cả từ cùng một người dùng / chuỗi kết nối, không thể nhìn thấy chúng. Các quy tắc cho thời gian tồn tại phụ thuộc vào việc bảng tạm thời cục bộ có được tạo trong một thủ tục được lưu trữ hay không:
- Một bảng tạm thời cục bộ được tạo trong một thủ tục được lưu trữ sẽ bị xóa khi thủ tục kết thúc; các thủ tục được lưu trữ khác hoặc quá trình gọi, không thể nhìn thấy chúng.
- Các bảng tạm thời cục bộ khác sẽ bị xóa khi phiên kết thúc.
Các bảng tạm thời chung (bắt đầu bằng ##) được chia sẻ giữa các phiên. Chúng bị loại bỏ khi:
- Phiên tạo ra chúng kết thúc
- VÀ không phiên nào khác đề cập đến họ
Lệnh này có thể hữu ích để xem bảng tạm thời nào tồn tại:
select TABLE_NAME from tempdb.information_schema.tables
Và điều này rất hữu ích để loại bỏ các bảng tạm thời nếu bạn không chắc chúng tồn tại:
if object_id('tempdb..#SoTest') is not null drop table #SoTest
Xem bài viết MSDN này để biết thêm thông tin.