Tablas temporales SQL Server
- February 8th, 2010
- Write comment
Hay dos tipos de tablas temporales: locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad. Las tablas temporales locales tienen como primer carácter de sus nombres un signo de número (#); sólo son visibles para el usuario de la conexión actual y se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales presentan dos signos de número (##) antes del nombre; son visibles para cualquier usuario después de su creación y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.
Por ejemplo, si crea la tabla denominada employees, la puede utilizar cualquier persona que cuente con los correspondientes permisos de seguridad establecidos para la base de datos hasta que se elimine la tabla. Si una sesión de base de datos crea una tabla temporal local denominada #employees, sólo la sesión puede trabajar con la tabla, que se elimina cuando se desconecta la sesión. Si crea la tabla temporal global ##employees, cualquier usuario de la base de datos podrá trabajar con ella. Si ningún otro usuario trabaja con esta tabla después de que la cree, la tabla se eliminará cuando se desconecte. Si otro usuario trabaja con la tabla después de que la cree, SQL Server la elimina cuando se desconecte y todas las demás sesiones ya no la utilicen activamente.
Es posible reemplazar muchos usos de las tablas temporales por variables con el tipo de datos table. Para obtener más información acerca de cómo usar las variables table, vea table (Transact-SQL).
Dejando el punto claro manera sencilla:
Tabla #empleados (tabla temporal disponible sólo para la sesión actual, se elimina al cerrar la sesión o se invoque el comando DROP TABLE)
Tabla ##empleados (tabla temporal disponible para todos, se elimina hasta que el último usuario deje de usarla)
Fuente:

