Usar tabelas temporárias

Concluído

Você pode usar Transact-SQL para criar tabelas temporárias. Tabelas temporárias vêm em dois tipos:

  • Tabelas temporárias locais
  • Tabelas temporárias globais

Criar tabelas temporárias locais

Utilize tabelas temporárias locais para criar tabelas dentro do escopo de sua sessão atual. Isso significa que sua tabela temporária só está visível para você e, quando a sessão terminar, a tabela não existirá mais. Vários usuários podem criar tabelas usando o mesmo nome e não teriam efeito uns sobre os outros.

Para criar uma tabela temporária local, use a mesma abordagem que faria ao criar uma tabela regular. No entanto, você adicionaria # antes do nome da tabela para significar que é uma tabela temporária local:

CREATE TABLE #Products (
    ProductID INT PRIMARY KEY,
    ProductName varchar,
    ...
);

Criar tabelas temporárias globais

Você também pode criar tabelas temporárias globais. Uma tabela temporária global é acessível em todas as sessões. Mas isso significa que uma tabela temporária global deve ter um nome exclusivo, ao contrário de uma tabela temporária local. As tabelas temporárias globais são descartadas automaticamente quando a sessão que a criou termina e todas as tarefas que fazem referência a ela em todas as sessões também terminaram. Você cria uma tabela temporária global da mesma forma que criaria uma tabela temporária local, exceto que usaria ## em vez de # para especificá-la como uma tabela temporária global.

CREATE TABLE ##Products (
    ProductID INT PRIMARY KEY,
    ProductName varchar,
    ...
);

Inserir e ler dados de uma tabela temporária

Você pode inserir dados em suas tabelas temporárias (locais e globais) usando a mesma abordagem que tabelas regulares, usando INSERT. Você só precisa ter certeza de acrescentar # ou ## ao nome da tabela. Por exemplo:

INSERT #Products (ProductID, ProductName, ProductDescription)  
    VALUES (1, 'The temporary time leap', 'A novel about temporary time leaping.');  

Você também pode recuperar resultados de uma tabela temporária usando SELECT. Por exemplo, para recuperar todas as linhas e colunas para sua tabela temporária #Products e ordenar os resultados pelo nome do produto, você executará:

SELECT *  
FROM #Products  
ORDER BY ProductName;