2012-02-15 15 views
5

He estado trabajando con SQL básico desde hace un par de años. Sin embargo, solo recientemente encuentro el comando "CON". De mi investigación, parece que "CON" es un método para crear una tabla temporal. Pero en mi experiencia, también puedes usar el hash "#" para crear una tabla temporal.T-SQL comparación de datos temporales # vs CON

Intenté buscar "CON" y "#", pero dado que estas son palabras de búsqueda raras, no obtengo muchos resultados.

¿Podría alguien decirme qué diferencia hay, como los pros y los contras de cada uno?

Respuesta

4

Utiliza WITH para crear una expresión de tabla común (CTE). No es técnicamente una tabla temporal.

Una tabla temporal es como cualquier otra tabla, pero se almacena en tempdb y se elimina cuando se cierra la conexión.

A diferencia de una tabla temporal, sin embargo, un CTE en realidad no tiene una tienda física. Es más como una "vista".

Here is a great article on exactly what CTEs are. Y a diferencia de tablas temporales, que persisten durante la conexión, un CTE es:

definido dentro del ámbito de ejecución de una única instrucción SELECT, INSERT, UPDATE, DELETE o CREATE VIEW

MSDN Reference on Using Common Table Expressions

0

WITH es una tabla creada sobre la marcha (en memoria), por lo que es potencialmente mucho más rápido que una tabla temporal (#) que es como cualquier otra tabla, pero se elimina automáticamente cuando cierra la conexión. La estafa es que solo está viva para una declaración

Cuestiones relacionadas