sql >> Databáze >  >> RDS >> Oracle

SQL Server / Oracle :Soukromé dočasné tabulky

Jak jste zjistili, SQL Server a dočasné tabulky Oracle jsou zásadně odlišné.

V Oracle jsou globální dočasné tabulky trvalé objekty, které ukládají dočasná data specifická pro relaci (nebo specifická pro transakci).

V SQL Server jsou dočasné tabulky dočasné objekty ukládající dočasná data, přičemž #temp_tables ukládají data, která jsou pro relaci místní, a ##temp_tables ukládají data, která jsou globální. (Nikdy jsem nepotřeboval globální dočasné tabulky SQL Serveru a nevím, jaký problém řeší.) Pokud byla #temp_table vytvořena v uložené proceduře, bude při ukončení uložené procedury zrušena. V opačném případě bude po ukončení relace zrušena.

A ne, opravdu neexistuje způsob, jak SQL Server napodobit Oracle. Můžete použít normální tabulku s dalším sloupcem, který ukládá ID relace. Ale nezískali byste výhody dočasných tabulek s ohledem na méně protokolování. Budete muset ručně smazat údaje o tempu. A vypořádejte se s úklidem relací, které předčasně skončily.

UPRAVIT: Dalším rozdílem mezi Oracle a SQL Server je to, že SQL Server umožňuje zabalit DDL do transakce s jinými příkazy. Pokud tedy potřebujete použít dočasnou tabulku jako součást větší transakce, create table #table_name... příkaz implicitně nepotvrdí aktuální transakci jako create table příkaz by v Oracle.



  1. Výběr z databáze na základě seznamu jedinečných párů

  2. Vyhledávací text Oracle s neanglickými znaky

  3. Spring MVC - smazání záznamu z tabulky JSP

  4. Připojení musí být platné a otevřené VB.Net