2012-08-01 8 views
21

¿cuál es la diferencia entre los nombres de tabla "#mytable" y "mytable" en TSQL? Veo que los nombres de las tablas comienzan con "#" en muchos procedimientos personalizados.¿Cuál es el significado de "#" delante de un nombre de tabla en TSQL?

+2

Por favor, por favor, lea esto: http://dba.stackexchange.com/ preguntas/16385/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server –

Respuesta

31

Estos son tablas temporales locales que son privadas al proceso que los creó

19

#mytable es una tabla temporal donde mytable es una tabla concreta.

Puedes leer más sobre Temporary Tables in SQL Server.

Se usan con más frecuencia para proporcionar espacio de trabajo para los resultados intermedios al procesar datos dentro de un lote o procedimiento. Son utilizados también para pasar una tabla de una función con valores de tabla para pasar datos basados ​​en tablas entre procedimientos almacenados o, más recientemente, en el formato de parámetros con valores de tabla, para enviar tablas completas de solo lectura desde a las rutinas de SQL Server, o pase tablas temporales de solo lectura como parámetros. Una vez terminado con su uso, se descartan automáticamente .

Las tablas temporales vienen en diferentes sabores, incluyendo, entre otros, tablas temporales locales (comenzando con #), tablas globales temporales (a partir de ##), las tablas temporales persistentes (el prefijo TempDB ..), y la tabla .. (a partir de las variables (@)

Cuestiones relacionadas