Tabele tymczasowe w Oracle są obiektami trwałymi, które przechowują dane tymczasowe, które są lokalne sesji. Tabele tymczasowe w SQL Server są obiektami tymczasowymi.
- W SQL Server globalna tabela tymczasowa przechowuje dane, które są widoczne dla wszystkich sesji. „Globalne tabele tymczasowe są widoczne dla każdego użytkownika i dowolnego połączenia po ich utworzeniu”. http://msdn.microsoft.com/en-us/library/ms186986 .aspx
- Globalne tabele tymczasowe są nadal obiektami tymczasowymi, które nie są trwałe i mogą wymagać utworzenia przed użyciem. „Globalne tabele tymczasowe są… są usuwane, gdy wszyscy użytkownicy odwołujący się do tabeli odłączają się od wystąpienia programu SQL Server”. http://msdn.microsoft.com/en-us/library/ms186986 .aspx
Uważam, że lokalna tabela tymczasowa lub zmienna tabeli jest najbardziej zbliżona do globalnej tabeli tymczasowej Oracle, duża różnica polega na tym, że musisz ją tworzyć za każdym razem.
Zwykle, w przypadku takim jak twój, krok 3, dodawanie wierszy do tabeli tymczasowej, można wykonać, wykonując select ... into #temp_table_name ....
(odpowiednik Oracle create table ... as select ...
) http://msdn.microsoft.com/en-us/library/ ms188029.aspx
Ponadto nie możesz wykonać następujących czynności w przechowywanej procedurze:(pseudokod.)
begin proc
call another proc to create local temp table.
use temp table
end proc
Lokalne tabele tymczasowe są niszczone po powrocie z procedury składowanej, która je utworzyła.
Aktualizacja 14.10.2014: Zachowanie lokalnych tabel tymczasowych różni się w wersji programu SQL Server Parallel Data Warehousev. Tabele tymczasowe nie są usuwane przy wyjściu z procedury składowanej, która je utworzyła, i zamiast tego pozostają istniejące przez resztę sesji. To zachowanie zaobserwowano:
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: )