Uso de tablas temporales

Completado

Puede usar Transact-SQL para crear tablas temporales. Las tablas temporales vienen en dos tipos.

  • Tablas temporales locales
  • Tablas temporales globales

Creación de tablas temporales locales

Use tablas temporales locales para crear tablas que tengan ámbito en la sesión actual. Esto significa que la tabla temporal solo es visible para usted y, cuando se ha terminado la sesión, la tabla ya no existe. Varios usuarios pueden crear tablas con el mismo nombre y no tendrán ningún efecto entre sí.

Para crear una tabla temporal local, use el mismo enfoque que lo haría al crear una tabla normal. Sin embargo, agregaría # antes del nombre de la tabla para indicar que es una tabla temporal local:

CREATE TABLE #Products (
    ProductID INT PRIMARY KEY,
    ProductName varchar,
    ...
);

Creación de tablas temporales globales

También puede crear tablas temporales globales. Se puede acceder a una tabla temporal global en todas las sesiones. Pero esto significa que una tabla temporal global debe tener un nombre único, a diferencia de una tabla temporal local. Las tablas temporales globales se eliminan automáticamente cuando finaliza la sesión que las creó y hayan finalizado todas las tareas que hacen referencia a ellas en todas las sesiones. Cree una tabla temporal global de la misma manera que crearía una tabla temporal local, excepto que usaría ## en lugar del único # que la especificaría como una tabla temporal global:

CREATE TABLE ##Products (
    ProductID INT PRIMARY KEY,
    ProductName varchar,
    ...
);

Insertar y leer datos de una tabla temporal

Puede insertar datos en las tablas temporales (tanto locales como globales) mediante el mismo enfoque que las tablas normales mediante INSERT. Solo tiene que asegurarse de añadir el # y el ## al nombre de la tabla. Por ejemplo:

INSERT #Products (ProductID, ProductName, ProductDescription)  
    VALUES (1, 'The temporary time leap', 'A novel about temporary time leaping.');  

También puede recuperar los resultados de una tabla temporal mediante SELECT. Por ejemplo, para recuperar todas las filas y columnas de la tabla temporal de #Products y ordenar los resultados por nombre del producto, ejecutaría:

SELECT *  
FROM #Products  
ORDER BY ProductName;