Creación de tablas dentro de store procedures

06/11/2007 - 17:27 por Pablo | Informe spam
Tengo una duda respecto a si es mejor utilizar tablas como variables o
aquellas que se generan directamente a partir de una consulta.

declare @tabla table (id int, nombre nvarchar(50)
insert into @tabla
select id, nombre
from usuarios

select id, nombre
into #tabla
from usuarios

¿cuál es la diferencia entre estas?, ¿pueden ser utilizadas indistintamente?
¿tienen alguna diferencia respecto al scope?
 

Leer las respuestas

#1 Carlos Sacristan
06/11/2007 - 17:35 | Informe spam
Las variables tipo tabla se comportan igual que cualquier otra variable,
es decir, su ámbito es el del batch. Por su parte, las tablas temporales son
a nivel de conexión

Si el punto anterior no te afecta y los datos que vas a almacenar son
pocos, es recomendable usar variables tabla. Para lo demás, es recomendable
tablas temporales.

Hay que tener en cuenta que las variables tabla no contienen histogramas
en sus columnas, por lo que las operaciones que se hagan contra ellas
(consultas) puede que no sean todo lo eficientes que pudieran ser...


"Pablo" escribió en el mensaje
news:
Tengo una duda respecto a si es mejor utilizar tablas como variables o
aquellas que se generan directamente a partir de una consulta.

declare @tabla table (id int, nombre nvarchar(50)
insert into @tabla
select id, nombre
from usuarios

select id, nombre
into #tabla
from usuarios

¿cuál es la diferencia entre estas?, ¿pueden ser utilizadas
indistintamente?
¿tienen alguna diferencia respecto al scope?

Preguntas similares