Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

É necessário usar # para criar tabelas temporárias no SQL Server?


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 parecidas com as tabelas normais. No entanto, ele é criado em tempdb.Além disso, só é acessível através da sessão atual, ou seja, por exemplo:se outro usuário tentar acessar a tabela temporária criada por você, ele não poderá fazê-lo.

"##" (o hash duplo cria uma tabela temporária "Global" que também pode ser acessada por outras sessões.

Consulte o link abaixo para 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 da sua tabela for menor que 5.000 linhas e NÃO contiver tipos de dados como nvarchar(MAX), varbinary(MAX), considere usar Table Variables.

Elas são as mais rápidas, pois são como quaisquer outras variáveis ​​armazenadas na RAM. Eles também são armazenados no 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