É necessário usar #
antes de criar uma tabela temporária no servidor SQL?
Exemplo:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Para ItemBack1 é necessário usar o #
símbolo?
Se não, qual é a utilidade de #
criar tabelas temporárias?
sql
sql-server
sql-server-2008
sql-server-2005
Arun CM
fonte
fonte
Respostas:
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 .Mais informações sobre variáveis de tabela: http://odetocode.com/articles/365.aspx
fonte
A diferença entre essas duas tabelas
ItemBack1
e#ItemBack1
é que a primeira é persistente (permanente) enquanto a outra é temporária.Agora, se você der uma olhada na sua pergunta novamente
A resposta é Sim , porque sem isso
#
a tabela não será uma tabela temporária, ela será independente de todas as sessões e escopos.fonte