Các bảng tạm thời trong Oracle là các đối tượng vĩnh viễn chứa dữ liệu tạm thời là phiên cục bộ. Các bảng tạm thời trong SQL Server là các đối tượng tạm thời.
- Trong SQL Server, bảng tạm thời chung chứa dữ liệu hiển thị cho tất cả các phiên. "Các bảng tạm thời toàn cầu hiển thị cho bất kỳ người dùng nào và bất kỳ kết nối nào sau khi chúng được tạo." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
- Bảng tạm thời chung vẫn là các đối tượng tạm thời không tồn tại vô thời hạn và có thể cần được tạo trước khi sử dụng. "Các bảng tạm thời chung ... bị xóa khi tất cả người dùng tham chiếu đến bảng ngắt kết nối khỏi phiên bản của SQL Server." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
Tôi thấy rằng bảng tạm thời cục bộ hoặc biến bảng gần giống nhất với bảng tạm thời toàn cục của Oracle, sự khác biệt lớn là bạn phải tạo nó mọi lúc.
Thông thường, trong trường hợp như của bạn, bước 3, thêm hàng vào bảng tạm thời, sẽ được thực hiện bằng cách thực hiện select ... into #temp_table_name ....
(tương đương với Oracle create table ... as select ...
) http://msdn.microsoft.com/en-us/library/ ms188029.aspx
Ngoài ra, bạn không thể thực hiện những việc sau trong proc được lưu trữ:(mã giả.)
begin proc
call another proc to create local temp table.
use temp table
end proc
Các bảng tạm thời cục bộ bị hủy khi quay trở lại từ thủ tục được lưu trữ đã tạo ra chúng.
Cập nhật 2014-10-14: Hoạt động của các bảng tạm thời cục bộ khác nhau trong phiên bản Parallel Data Warehousev của SQL Server. Các bảng tạm thời không bị loại bỏ khi thoát khỏi quy trình đã lưu trữ đã tạo chúng, và thay vào đó, tiếp tục tồn tại trong phần còn lại của phiên. Hành vi này được quan sát trên:
select @@version
Microsoft SQL Server 2012 - 10.0.5108.1 (X64) Jun 24 2014 20:17:02 Copyright (c) Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64> (Build 9200: )