2010-08-18 16 views

Respuesta

12

Una tabla temporal se creará en tempdb y se puede comprobar fácilmente por él mediante la consulta de la tabla sysobjects en tempdb

ejemplo

create table #test (Item char(1), TimeSold varchar(20)) 

select * from tempdb.sys.sysobjects 
where name like '#test%' 

debería ver algo con un nombre como #test _______ 000000000905 pero luego con más de subrayado

Si es necesario comprobar si existe una tabla temporal y luego consulta How Do You Check If A Temporary Table Exists In SQL Server

La estructura de la variable Table también se crea en tempdb. Para ver la variable de la tabla, puede hacer algo como esto, pero no hay garantía de que alguien no haya colado antes de crear su variable de tabla. El nombre de la variable tabla será algo así como # 7BB1235D

declare @v table(id int) 
select top 1 * from tempdb.sys.sysobjects 
where name like '#%' 
and name not like '%[_]%' 
order by crdate desc 
select * from @v 

Para más información ver aquí: http://support.microsoft.com/kb/305977

+1

editado mi respuesta, tx – SQLMenace

2

Ha sido mi entendimiento de que, como mínimo, la estructura de una variable de tabla se crea siempre en tempdb. Entonces, como pointed out by SQLMenace, los datos pueden o no extenderse.

por this Microsoft Knowledge Base Article:

una variable de tabla no es una memoria de sólo estructura. Debido a que una variable de tabla puede contener más datos de los que caben en la memoria , tiene que tener un lugar en el disco para almacenar datos. Las variables de tabla son creadas en la base de datos tempdb similar a tablas temporales. Si la memoria es disponible, se crean variables de tabla y tablas temporales y se procesa mientras está en memoria (datos caché).

+1

Los datos siempre se guardan en las páginas de datos que pertenecen a 'tempdb'. Pueden escribirse o no en el disco y, si se escriben en un disco, las páginas pueden estar o no en el grupo de búferes. [Algunas demostraciones relevantes al final de mi respuesta aquí] (http://dba.stackexchange.com/a/16386/3690) –

Cuestiones relacionadas