¿Cuál es el significado de "#" delante de un nombre de tabla en TSQL?


¿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.

Author: Lloyd Banks, 2012-08-01

2 answers

Estas son tablas temporales locales que son privadas para el proceso que las creó.

 35
Author: mykola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-01 19:08:54

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

Puede leer más sobre Tablas temporales en SQL Server.

Se utilizan con mayor frecuencia para proporcionar espacio de trabajo para los resultados intermedios cuando se procesan datos dentro de un lote o procedimiento. Son también se utiliza para pasar una tabla de una función de valor de tabla, para pasar datos basados en tablas entre procedimientos almacenados o, más recientemente, en el forma de parámetros de valor de tabla, para enviar entero tablas de solo lectura de aplicaciones a rutinas de SQL Server, o pase temporal de solo lectura tablas como parámetros. Una vez terminado con su uso, se desechan automática.

Las mesas temporales vienen en diferentes sabores incluyendo, entre otros, tablas temporales locales (comenzando con#), tablas temporales globales (comenzando con ##), tablas temporales persistentes (prefijadas por TempDB..), y variables de tabla.(comenzando con (@)

 23
Author: YetAnotherUser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-01 19:07:23