Sim. Você precisa prefixar o nome da tabela com "#" (hash) para criar tabelas temporárias.
Se você NÃO precisar da tabela mais tarde, vá em frente e crie-a. As tabelas temporárias são muito semelhantes às tabelas normais. No entanto, ele é criado em tempdb. Além disso, só pode ser acessado através da sessão atual, ou seja, para EG: se outro usuário tentar acessar a tabela temporária criada por você, ele não poderá fazer isso.
"##" (hash duplo cria uma tabela temporária "Global" que pode ser acessada por outras sessões também.
Consulte o link a seguir para as Noções básicas de tabelas temporárias:
http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Se o conteúdo de sua tabela for inferior a 5000 linhas e NÃO contiver tipos de dados como nvarchar (MAX), varbinary (MAX), considere o uso de Variáveis de Tabela.
Eles são os mais rápidos, pois são como quaisquer outras variáveis armazenadas na RAM. Eles também são armazenados em tempdb, não na RAM .
DECLARE @ItemBack1 TABLE
(
column1 int,
column2 int,
someInt int,
someVarChar nvarchar(50)
);
INSERT INTO @ItemBack1
SELECT column1,
column2,
someInt,
someVarChar
FROM table2
WHERE table2.ID = 7;
Mais informações sobre variáveis de tabela:
http://odetocode.com/articles/365.aspx