Jak już odkryłeś, tabele tymczasowe SQL Server i Oracle różnią się zasadniczo.
W Oracle globalne tabele tymczasowe są stałymi obiektami, które przechowują tymczasowe dane specyficzne dla sesji (lub specyficzne dla transakcji).
W SQL Server tabele tymczasowe są tymczasowymi obiektami przechowującymi dane tymczasowe, przy czym #temp_tables przechowuje dane lokalne dla sesji, a ##temp_tables przechowuje dane globalne. (Nigdy nie potrzebowałem globalnych tabel tymczasowych SQL Server i nie wiem, jaki problem rozwiązują.) Jeśli #temp_table została utworzona w procedurze składowanej, zostanie ona usunięta po zakończeniu procedury składowanej. W przeciwnym razie zostanie on usunięty po zamknięciu sesji.
I nie, naprawdę nie ma sposobu, aby SQL Server naśladował Oracle. Możesz użyć zwykłej tabeli z dodatkową kolumną przechowującą identyfikator sesji. Ale nie uzyskasz korzyści z tabel tymczasowych w odniesieniu do mniejszego rejestrowania. Musisz ręcznie usunąć dane tymczasowe. I zajmij się sprzątaniem po sesjach, które kończą się przedwcześnie.
EDYTUJ: Inną różnicą między Oracle a SQL Server jest to, że SQL Server umożliwia owinięcie DDL w transakcję z innymi instrukcjami. Jeśli więc potrzebujesz użyć tabeli tymczasowej jako części większej transakcji, create table #table_name...
instrukcja nie zatwierdzi niejawnie bieżącej transakcji, jak create table
oświadczenie byłoby w Oracle.