Usuário com melhor resposta
Variavel Table Versus Tabela Temporaria Versus Tabela Fisica

Pergunta
-
Respostas
-
Mauricio,
com tabelas em formato de variaveis, é necessario usar um alias apos o nome de cada tabela.O teu codigo ficaria assim:
[]'s!DECLARE @pessoa TABLE ( id INT, nome VARCHAR(32) ) DECLArE @pessoa2 TABLE ( id INT, nome VARCHAR(32) ) insert into @pessoa Values(1,'AndrE'); insert into @pessoa2 Values(1,'AndrE') Select a.id, a.nome from @pessoa a inner join @pessoa2 b on a.id = b.id
http://www.diaadiasql.com.br- Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 15:56
- Marcado como Resposta maumauboy quarta-feira, 9 de fevereiro de 2011 17:28
Todas as Respostas
-
Tb é possivel criar indices em tabelas temporaria. Variveis com o formato de tabela, essas, não são possiveis criar indices.
Qual é melhor? depende da situação.
[]'s!
http://www.diaadiasql.com.br- Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 13:58
-
-
è possivel sim criar indices em tabelas temporarias. Dá uma olhada nesse link: http://www.sqlteam.com/article/optimizing-performance-indexes-on-temp-tables
Em relação a joins de table variable, olha esse link: http://www.codeproject.com/KB/database/SQLTableVarTricks.aspx
[]'s!
http://www.diaadiasql.com.br -
OBRIGADO PELOS LINKS:
ANALISANDO O SEGUNDO LINK REPAREI QUE A VARIAVEL TABLE FAZ JOIN COM TABELAS FISICAS.
QUANDO EU EXECUTO O SCRIPT ABAIXO OCORRE O SEGUINTE ERRO:
DECLARE
@pessoa TABLE
(
id
INT,
nome
VARCHAR(32)
)
DECLArE
@pessoa2 TABLE
(
id
INT,
nome
VARCHAR(32)
)
insert
into @pessoa Values(1,'AndrE');
insert
into @pessoa2 Values(1,'AndrE')
Select
id, nome from @pessoa
inner
join
@pessoa2
on
@pessoa.id=@pessoa2.id
Msg 137, Level 15, State 2, Line 16
Must declare the scalar variable "@pessoa".
GRATO,
MAURÍCIO
-
Mauricio,
com tabelas em formato de variaveis, é necessario usar um alias apos o nome de cada tabela.O teu codigo ficaria assim:
[]'s!DECLARE @pessoa TABLE ( id INT, nome VARCHAR(32) ) DECLArE @pessoa2 TABLE ( id INT, nome VARCHAR(32) ) insert into @pessoa Values(1,'AndrE'); insert into @pessoa2 Values(1,'AndrE') Select a.id, a.nome from @pessoa a inner join @pessoa2 b on a.id = b.id
http://www.diaadiasql.com.br- Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 15:56
- Marcado como Resposta maumauboy quarta-feira, 9 de fevereiro de 2011 17:28
-