Você pode criar variáveis de tabela (na memória) e dois tipos diferentes de tabela temporária:
--visible only to me, in memory (SQL 2000 and above only)
declare @test table (
Field1 int,
Field2 nvarchar(50)
);
--visible only to me, stored in tempDB
create table #test (
Field1 int,
Field2 nvarchar(50)
)
--visible to everyone, stored in tempDB
create table ##test (
Field1 int,
Field2 nvarchar(50)
)
Editar:
Após o feedback, acho que isso precisa de um pouco de esclarecimento.
#table
e ##table
estará sempre em TempDB. @Table
as variáveis normalmente estarão na memória, mas não é garantido que estejam. O SQL decide com base no plano de consulta e usa o TempDB se necessário.