Tema SQL
Tablas temporales
Almacenar resultados intermedios de sesión o transacción.
Descripción
CREATE TEMP TABLE / #tabla en SQL Server / GLOBAL TEMPORARY según motor. Se eliminan al cerrar sesión o al terminar el trabajo (manual §22).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
CREATE TEMP TABLE tmp_resumen AS
SELECT cliente_id, SUM(total) AS t
FROM pedidos
GROUP BY cliente_id;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Alcance
- Local vs global; visibilidad entre conexiones distinta por motor.
Ejemplos
Ejemplo 1
CREATE TEMP TABLE tmp_ids (id INT PRIMARY KEY);
INSERT INTO tmp_ids SELECT id FROM clientes WHERE activo = 1;
Ejemplo 2
DROP TABLE IF EXISTS #tmp; -- SQL Server sesión
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.