En Oracle, puede crear una tabla temporal usando algo como:SQL Server/Oracle: tablas temporales privadas
CREATE GLOBAL TEMPORARY TABLE temp_table (
field1 NUMBER,
field2 NUMBER
)
ON COMMIT DELETE ROWS;
... que podría ser bastante ingenioso, ya que esto crea una tabla visible para todos, pero los datos que uno inserta en la tabla son visibles solo para él o ella. Además, esos datos se eliminan automáticamente al final de la transacción o de la sesión (según su declaración), dejando intactos los datos temporales de todos los demás.
En SQL Server, sin embargo, puede crear una tabla temporal con:
CREATE TABLE #temp_table (field1 INT, field2 INT);
... que, como yo lo entiendo, es sustancialmente y funcionalmente diferente de la implementación de Oracle. Esta tabla temporal solo es visible para usted y se descarta (la tabla) inmediatamente después de su uso.
¿Hay alguna capacidad en SQL Server para imitar el comportamiento de Oracle como se describió anteriormente? ¿O la única forma de trabajar con datos temporales implica tener que CREAR repetidamente la tabla temporal con cada iteración de trabajo?
¿Puedes explicar por qué querrías imitar el comportamiento de Oracle en SQLServer? ¿Es solo para evitar el requisito de ejecutar la instrucción CREATE TABLE? –
@Mark ~ bueno, eso principalmente. Pero si estaba lidiando con (1) inserciones de datos temporales repetitivos, (2) con generalmente el mismo formato de datos y campos, (3) y es exclusivo del usuario (es decir, los datos son privados para una sesión de usuario), solo hace mucho más sentido para manejar todo eso en una tabla según la implementación de Oracle. :) –
[Tablas temporales privadas de Oracle] (https://stackoverflow.com/a/48852466/5070879) – lad2025