2010-08-18 9 views

Odpowiedz

12

tabeli temp zostanie utworzony w tempdb i można łatwo sprawdzić za nim przez odpytywanie tabeli sysobjects w tempdb

przykład

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

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

powinieneś zobaczyć coś o nazwie typu # # # test _______ 000000000905 ale potem z większą liczbą podkreślenia

Jeśli chcesz sprawdzić, czy istnieje tabela temp następnie zobacz także How Do You Check If A Temporary Table Exists In SQL Server

Struktura zmiennej Table jest również tworzona w tempdb Aby zobaczyć tabelę zmiennych można zrobić coś takiego, ale nie ma gwarancji, że ktoś nie wkradł się przed tobą podczas tworzenia swojej zmiennej tabeli. Nazwa zmiennej tabela będzie coś jak # 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 

Więcej informacji można znaleźć tutaj: http://support.microsoft.com/kb/305977

+1

edytowany moja odpowiedź, tx – SQLMenace

2

To było moje zrozumienie, że przynajmniej struktura zmiennej tabeli jest zawsze tworzone w tempdb. Następnie, jako pointed out by SQLMenace, dane mogą się rozlać lub nie.

Per this Microsoft Knowledge Base Article:

Zmienna tabela nie jest pamięcią tylko struktura. Ponieważ zmienna tablicy może przechowywać więcej danych niż mieści się w pamięci , musi mieć miejsce na dysku do przechowywania danych. Zmienne tabeli to utworzone w bazie danych tempdb podobne do do tabel tymczasowych. Jeśli dostępna jest pamięć , tworzone są tabele tymczasowe i tabele tymczasowe i przetwarzane w pamięci (dane pamięci podręcznej danych: ).

+1

Dane są zawsze przechowywane na stronach danych należących do 'tempdb'. Mogą one być zapisane na dysku lub nie, a zapisywane na dyskach strony mogą nadal znajdować się w puli buforów. [Niektóre odpowiednie demonstracje na samym końcu mojej odpowiedzi tutaj] (http://dba.stackexchange.com/a/16386/3690) –

Powiązane problemy