Khi bạn tạo bảng tạm thời trong SQL Server, bạn có tùy chọn đặt nó thành bảng tạm thời cục bộ hoặc toàn cục.
Dưới đây là phác thảo nhanh về sự khác biệt chính giữa bảng tạm thời cục bộ và bảng tạm thời chung.
Đặt tên
- Tên của các bảng tạm thời cục bộ bắt đầu bằng một ký hiệu số (
#
). Ví dụ:#MyTable
. - Các bảng tạm thời cục bộ cũng nhận được một hậu tố số do hệ thống tạo ra được thêm vào tên. Điều này được tạo tự động bởi SQL Server. Điều này cho phép nhiều phiên tạo các bảng tạm thời cục bộ có cùng tên mà không gây ra xung đột đặt tên. Tuy nhiên, người dùng vẫn có thể truy vấn bảng mà không cần biết hậu tố.
- Tên của các bảng tạm thời chung bắt đầu bằng dấu số kép (
##
). Ví dụ:##MyTable
. - Các bảng tạm thời toàn cầu không được thêm vào bằng một hậu tố như với các bảng tạm thời cục bộ.
Khả năng hiển thị
- Các bảng tạm thời cục bộ chỉ hiển thị trong phiên hiện tại.
- Các bảng tạm thời chung được hiển thị cho tất cả các phiên.
Tuổi thọ
- Các bảng tạm thời cục bộ sẽ tự động bị loại bỏ vào cuối phiên hiện tại. 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ẽ tự động bị loại bỏ khi thủ tục được lưu trữ kết thúc. Bảng có thể được tham chiếu bởi bất kỳ thủ tục lưu trữ lồng nhau nào được thực thi bởi thủ tục được lưu trữ đã tạo ra bảng. Bảng không thể được tham chiếu bởi quy trình được gọi là quy trình được lưu trữ đã tạo ra bảng.
- Các bảng tạm thời chung sẽ tự động bị loại bỏ khi phiên tạo bảng kết thúc và tất cả các tác vụ khác đã ngừng tham chiếu đến chúng. Mối liên kết giữa một nhiệm vụ và một bảng chỉ được duy trì trong vòng đời của một câu lệnh T-SQL. Do đó, một bảng tạm thời toàn cục sẽ bị xóa khi hoàn thành câu lệnh T-SQL cuối cùng đang tích cực tham chiếu đến bảng khi phiên tạo kết thúc.