Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Las tablas temporales de SQL Server almacenan datos temporalmente. Puede realizar las mismas operaciones, como SELECCIONAR, INSERTAR, ELIMINAR y ACTUALIZAR, en una tabla temporal como lo haría con una tabla SQL normal.

Las tablas temporales viven en la base de datos tempdb y solo son visibles durante la duración de la conexión. Cuando finaliza la conexión, SQL Server elimina la tabla temporal. También puede eliminarlo explícitamente en cualquier momento.

Tipos de tablas temporales de SQL Server

Hay dos tipos de tablas temporales de SQL Server: locales y globales.

Tabla de temperatura local

Una tabla temporal local solo es visible para la conexión que la creó. Cuando finaliza esa conexión, o el usuario se desconecta del servidor SQL ejemplo, una tabla temporal local se elimina automáticamente.

Para crear una tabla temporal local, use un solo símbolo hash (#) al principio del nombre de la tabla con la instrucción CREATE TABLE. Aquí está la sintaxis.

instagram viewer

CREARMESA#TempTable (
columna1 INT,
Columna2 VARCHAR(50)
);

Por ejemplo, el siguiente código crea una tabla temporal denominada TempCustomer con un nombre y un campo de correo electrónico.

CREARMESA#Cliente Temporal (
ID int CLAVE PRIMARIA NO NULA
Nombre completo VARCHAR(50),
Correo electrónico VARCHAR(50)
);

Tabla temporal global

Una tabla temporal global es una tabla temporal visible para todas las conexiones y usuarios. SQL Server lo descartará cuando todas las conexiones y los usuarios que hacen referencia a la tabla se hayan desconectado.

Para crear una tabla temporal global, prefije el nombre de la tabla con doble hash (##) y use la instrucción CREATE TABLE.

CREARMESA##TempTable (
columna1 INT,
Columna2 VARCHAR(50)
);

El código siguiente crea una tabla temporal global denominada TempCustomer.

CREARMESA##Cliente Temporal (
ID int CLAVE PRIMARIA NO NULA
Nombre completo VARCHAR(50),
Correo electrónico VARCHAR(50)
);

Este código es similar al ejemplo de la tabla temporal local, solo que con dos símbolos hash en lugar de uno. Ahora puedes usar comandos SQL estándar para agregar o manipular los datos en la tabla temporal.

Cómo eliminar una tabla temporal

La instancia de SQL Server elimina automáticamente una tabla temporal cuando todos los usuarios que hacen referencia a ella se han desconectado. Como práctica recomendada, siempre debe descartar explícitamente sus tablas temporales para liberar la memoria tempdb.

Para descartar una tabla temporal, use la instrucción DROP TABLE IF EXISTS seguida del nombre de la tabla temporal.

Así es como se elimina la tabla #TempCustomer:

GOTAMESASIEXISTE#ClienteTemporal

Use el mismo código pero cambie el nombre de la tabla para eliminar una tabla temporal global.

GOTAMESASIEXISTE##Cliente Temporal

Usos típicos de las tablas temporales de SQL

Las tablas temporales son útiles cuando necesita almacenar resultados intermedios de consultas complejas que necesita procesar más. Por ejemplo, al crear informes, es posible que deba crear tablas temporales para almacenar los resultados de las consultas de varias bases de datos. A continuación, puede generar el informe final ejecutando una consulta en las tablas temporales.

Otro escenario donde las tablas temporales son útiles es cuando necesita los resultados de la consulta de una tabla para ejecutar otra consulta. Puede almacenar los resultados en una tabla temporal y luego hacer referencia a ella en su nueva consulta. Esencialmente, está utilizando la tabla temporal como una tabla de trabajo o de búfer para almacenar los datos que necesita para realizar una tarea específica.

Uso de tablas temporales en SQL Server

Puede usar tablas temporales de SQL Server para almacenar y procesar datos temporalmente. Hay dos tipos de tablas temporales, locales y globales. Una tabla temporal local es visible para la conexión en la que se crea, mientras que una tabla temporal global es visible en todas las conexiones.

Las tablas temporales se destruyen automáticamente cuando se desconecta de la instancia del servidor. Sin embargo, para conservar la memoria, siempre debe dejarlos caer después de usarlos.