¿Es necesario usarlo #
antes de crear una tabla temporal en el servidor SQL?
Ejemplo:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Para ItemBack1, ¿es necesario utilizar el #
símbolo?
Si no es así, ¿de qué sirve #
para crear tablas temporales?
Respuestas:
Si. Debe anteponer el nombre de la tabla con "#" (hash) para crear tablas temporales.
Si NO necesita la tabla más adelante, continúe y créela. Las tablas temporales se parecen mucho a las tablas normales. Sin embargo, se crea en tempdb. Además, solo es accesible a través de la sesión actual, es decir, para EG: si otro usuario intenta acceder a la tabla temporal creada por usted, no podrá hacerlo.
"##" (el doble hash crea una tabla temporal "Global" a la que también pueden acceder otras sesiones.
Consulte el enlace a continuación para conocer los conceptos básicos de las tablas temporales: http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Si el contenido de su tabla es menor a 5000 filas y NO contiene tipos de datos como nvarchar (MAX), varbinary (MAX), considere usar Variables de tabla.
Son las más rápidas, ya que son como cualquier otra variable almacenada en la RAM.También se almacenan en tempdb, no en RAM .Más información sobre las variables de la tabla: http://odetocode.com/articles/365.aspx
fuente
La diferencia entre estas dos tablas
ItemBack1
y#ItemBack1
es que la primera es persistente (permanente) mientras que la otra es temporal.Ahora, si vuelve a mirar su pregunta
La respuesta es Sí , porque sin esto precedente
#
la tabla no será una tabla temporal, será independiente de todas las sesiones y alcances.fuente