Esta funcionalidade pode ser muito útil em situações em que precisamos fazer o deploy de alguma aplicação ou relatório, ou para implementações de performance em querys que estão muito lentas.
Vejamos um exemplo com o banco de dados Northwind, banco de exemplo que é disponibilizado junto com as instalações do SQL Server:
SELECT CustomerID
,CompanyName
,ContactName
,ContactTitle
,Address
,City
,Region
,PostalCode
,Country
,Phone
,Fax
INTO #TMP_CUSTOMERS
FROM Northwind.dbo.Customers
Agora temos uma tabela temporária criada como o nome #tmp_customers. Observe o caracter # adicionado antes do nome da tabela. Este caracter indica que esta tabela está disponível apenas para esta sessão do Sql Server, ou seja, está disponível apenas para a janela do Query Analyzer onde o script foi executado.
Podemos fazer esta tabela ficar disponível para todas as sessões, acrescentando outro caracter # ao final do nome da tabela (#tmp_customers#).
Até a próxima.
Podemos criar tabelas "físicas" (atemporais), no banco de dados, removendo os caracteres "#".
ResponderExcluirOla,
ResponderExcluirnessa tabela temporária, já é criado a chave primaria na tabela temporária conforme os atributos do select?
Se eu criar uma tabela com #nometabela# que sera vista em todas as sessões quando ela vai ser excluida.
Obrigado e parabéns pelo post.
Paulo,
ResponderExcluirAqui cabe uma correção. Para tabelas multi-sessão, é necessário colocar os caracteres na frente "##".
Esta tabela é eliminada apenas quando a sessão original é finalizada ou através de um comando explícito (drop table).
Abs
ótimo Rodrigo, mas como crio uma tabela co select into trazendo as PK's e identity caso tiver??
ResponderExcluir