Tabelas temporárias no Sql Server
Veja neste artigo como criar e utilizar tabelas temporárias no Sql Server
Tabelas temporárias no Sql Server
Tabelas Temporárias são criadas no database TempDB e podem ser classificadas em Locais e Globais:
· Tabelas Temporárias Locais são criadas com o prefixo "#" e possuem visibilidade restrita para a conexão responsável por sua criação; outras conexões não "enxergam" a tabela.
· Tabelas Temporárias Globais são criadas com o prefixo "##" e são visíveis por todas as conexões
Sintaxe:
CREATE TABLE #nomeTable
(
nomecampoA varchar(80),
nomecampoB money
)
Tabelas temporárias são muito utilizadas quando precisamos reunir vários registros de várias tabelas em uma única seleção e exibi-las em uma aplicação qualquer (p.ex.: Delphi, Visual Studio, ASP.NET, etc.). .
É fundamental para aplicações cliente/servidor onde vários usuários estão acessando aquela procedure ao mesmo tempo.
Aqui vai um exemplo prático da utilização de tabelas temporárias locais.É importante saber que neste exemplo a tabela temporária só existirá enquanto a procedure está sendo executada, após a execução da mesma ela é automaticamente excluída. Aproveitei para colocar um exemplo utilizando o CASE do Sql Server.
CREATE PROCEDURE TesteTabelaTemporaria
as
create table #tmpTotalPage
(mes smallint null,
totalmes smallint null,
mediames decimal(9, 3) null )
Insert into #tmpTotalPage ( mes, totalmes, media)
(select DATEPART(MONTH,data) as Mes, count(*) as TotalAcessos, null
from Acessos AS AC
INNER JOIN CadastroTB AS C ON AC.idcad = C.idCad
group by DATEPART(MONTH,data))
select mes, totalmes,
media = case
when mes = 1 then totalmes / 31
when mes = 2 then totalmes / 28
when mes = 3 then totalmes / 30
when mes = 4 then totalmes / 31
when mes = 5 then totalmes / 30
when mes = 6 then totalmes / 31
when mes = 7 then totalmes / 30
when mes = 8 then totalmes / 31
when mes = 9 then totalmes / 30
when mes = 10 then totalmes / 31
when mes = 11 then totalmes / 30
when mes = 12 then totalmes / 31
end
from #tmpTotalPage
Por enquanto é só, até a próxima pessoal!
Fabio Correa - Equipe DevMedia Group
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo