Usar tabelas temporárias
Você pode usar o Transact-SQL para criar tabelas temporárias. As mesas temporárias são de dois tipos:
- Mesas temporárias locais
- Tabelas temporárias globais
Criar tabelas temporárias locais
Use tabelas temporárias locais para criar tabelas com escopo para sua sessão atual. Isso significa que sua tabela temporária só é visível para você e, quando a sessão termina, a tabela não existe mais. Vários usuários podem criar tabelas usando o mesmo nome, e elas não teriam efeito umas sobre as outras.
Para criar uma tabela temporária local, use a mesma abordagem que usaria ao criar uma tabela regular. No entanto, você adicionaria # antes do nome da tabela para indicar 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 está 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 as criou termina, e todas as tarefas que fazem referência a ela em todas as sessões também foram encerradas. Você criaria uma tabela temporária global da mesma forma que criaria uma tabela temporária local, exceto que usaria ## em vez da única # especificação 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 das tabelas regulares, usando INSERT. Você só precisa se certificar de anexar o # 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 do #Products tabela temporária e ordenar os resultados pelo nome do produto, execute:
SELECT *
FROM #Products
ORDER BY ProductName;