sql >> Base de Datos >  >> RDS >> Oracle

Tablas temporales globales - SQL Server vs Oracle

Las tablas temporales en Oracle son objetos permanentes que contienen datos temporales que son locales de la sesión. Las tablas temporales en SQL Server son objetos temporales.

  1. En SQL Server, una tabla temporal global contiene datos que son visibles para todas las sesiones. "Las tablas temporales globales son visibles para cualquier usuario y cualquier conexión después de que se creen". http://msdn.microsoft.com/en-us/library/ms186986 .aspx
  2. Las tablas temporales globales siguen siendo objetos temporales que no persisten indefinidamente y es posible que deban crearse antes de su uso. "Las tablas temporales globales se... se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server". http://msdn.microsoft.com/en-us/library/ms186986 .aspx

Encuentro que una tabla temporal local, o una variable de tabla, es lo más parecido a la tabla temporal global de Oracle, la gran diferencia es que tiene que crearla cada vez.

Por lo general, en un caso como el suyo, el paso 3, agregar filas a la tabla temporal, se haría haciendo select ... into #temp_table_name .... (equivalente a Oracle create table ... as select ... ) http://msdn.microsoft.com/en-us/library/ ms188029.aspx

Además, no puede hacer lo siguiente en un proceso almacenado:(pseudocódigo).

begin proc
   call another proc to create local temp table.
   use temp table
end proc

Las tablas temporales locales se destruyen cuando regresan del procedimiento almacenado que las creó.

Actualización 2014-10-14: El comportamiento de las tablas temporales locales es diferente en la versión Parallel Data Warehousev de SQL Server. Las tablas temporales no se eliminan al salir del procedimiento almacenado que las creó y, en su lugar, continúan existiendo durante el resto de la sesión. Este comportamiento observado en:

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: )