Dočasné tabulky v Oracle jsou trvalé objekty, které uchovávají dočasná data, která jsou místní relace. Dočasné tabulky v SQL Server jsou dočasné objekty.
- Na serveru SQL Server obsahuje globální dočasná tabulka data, která jsou viditelná pro všechny relace. "Globální dočasné tabulky jsou viditelné pro každého uživatele a jakékoli připojení poté, co byly vytvořeny." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
- Globální dočasné tabulky jsou stále dočasné objekty, které nepřetrvají po neomezenou dobu a před použitím je možná bude nutné vytvořit. "Globální dočasné tabulky jsou... jsou odstraněny, když se všichni uživatelé, kteří na tabulku odkazují, odpojí od instance SQL Server." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
Zjistil jsem, že místní dočasná tabulka nebo proměnná tabulky je nejblíže tomu, aby byla stejná jako globální dočasná tabulka Oracle, velký rozdíl je v tom, že ji musíte pokaždé vytvořit.
Obvykle, v případě, jako je ten váš, by se krok 3, přidání řádků do dočasné tabulky, provedl provedením select ... into #temp_table_name ....
(ekvivalentní k Oracle create table ... as select ...
) http://msdn.microsoft.com/en-us/library/ ms188029.aspx
V uloženém procesu také nemůžete provádět následující:(pseudokód.)
begin proc
call another proc to create local temp table.
use temp table
end proc
Místní dočasné tabulky jsou zničeny při návratu z uložené procedury, která je vytvořila.
Aktualizace 2014-10-14: Chování místních dočasných tabulek je ve verzi Parallel Data Warehousev serveru SQL Server odlišné. Dočasné tabulky nejsou zrušeny při ukončení uložené procedury, která je vytvořila, a místo toho zůstávají existující po zbytek relace. Toto chování pozorováno na:
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: )