Microsoft SQL Server
Uso de la tabla TEMP
Buscar..
Observaciones
Las tablas temporales son realmente muy útiles.
La tabla se puede crear en tiempo de ejecución y puede realizar todas las operaciones que se realizan en una tabla normal.
Estas tablas se crean en una base de datos tempdb.
Utilizado cuando?
Tenemos que hacer una operación de unión compleja.
Hacemos gran cantidad de manipulación de filas en procedimientos almacenados.
Puede reemplazar el uso del cursor.
Así aumenta el rendimiento.
Tabla de temperatura local
Estará disponible hasta que la conexión actual persista para el usuario.
Se elimina automáticamente cuando el usuario se desconecta.
El nombre debe comenzar con # (#temp)
CREATE TABLE #LocalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150))
insert into #LocalTempTable values ( 1, 'Ram','India');
select * from #LocalTempTable
Después de ejecutar todas estas declaraciones, si cerramos la ventana de consulta y la abrimos de nuevo e intentamos insertarla y seleccionarla, aparecerá un mensaje de error.
“Invalid object name #LocalTempTable”
Tabla de temperatura global
Comenzará con ## (## temp).
Se eliminará solo si el usuario desconecta todas las conexiones.
Se comporta como una mesa permanente.
CREATE TABLE ##NewGlobalTempTable( StudentID int, StudentName varchar(50), StudentAddress varchar(150)) Insert Into ##NewGlobalTempTable values ( 1,'Ram','India'); Select * from ##NewGlobalTempTable
Nota: Todos los usuarios de la base de datos pueden verlos, independientemente del nivel de permisos.
Tablas de temperatura de caída
Las tablas temporales deben tener ID únicos (dentro de la sesión, para tablas temporales locales, o dentro del servidor, para tablas temporales globales). Intentar crear una tabla con un nombre que ya existe devolverá el siguiente error:
There is already an object named '#tempTable' in the database.
Si su consulta produce tablas temporales y desea ejecutarla más de una vez, deberá eliminar las tablas antes de intentar generarlas nuevamente. La sintaxis básica para esto es:
drop table #tempTable
Intentar ejecutar esta sintaxis antes de que exista la tabla (por ejemplo, en la primera ejecución de su sintaxis) causará otro error:
Cannot drop the table '#tempTable', because it does not exist or you do not have permission.
Para evitar esto, puedes verificar si la tabla ya existe antes de soltarla, así:
IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable