Query con Declare Table

03/02/2006 - 14:53 por Jorge Aguilar | Informe spam
Hola a todos tengo que hacer copias de tablas, y declarlo en tablas
temporales, las tablas las creo, pero no puedo hacer un select , les envio
tambien el query porque no descubro porque no funciona.
Ahora es necesario que se haga con declare table que es mas rapido que con
create table #tabla

Gracias,
Jorge

declare @pIDX int
sysobjects, solo contiene nombre de tablas.
declare @vtablas varchar(32),
@vcolumna varchar(100),
@vsentencia varchar(8000),
@vsql varchar(8000),
@idtabla int
set @pIDX = 12
select @vtablas= tblrep_nombre from tablas_replicar where
tblrep_indice=@pIDX
set @vsentencia =''
set @vcolumna=''
declare cursor_tabla cursor for
select ta.id, co.name+' '+td.name +''+
case td.name when 'bit' then ''
when 'char' then '('+cast(co.length as varchar(3))+')'
when 'datetime' then ''
when 'decimal' then '('+cast(co.xprec as varchar(3))+','+cast(co.xscale
as varchar(2))+')'
when 'int' then '('+cast(co.length as varchar(3))+')'
when 'tinyint' then '('+cast(co.length as varchar(3))+')'
when 'varchar' then '('+cast(co.length as varchar(3))+')' end +','
from syscolumns co
inner join sysobjects ta on ta.id=co.id and ta.name in (select
tblrep_nombre from TABLAS_REPLICAR)
inner join systypes td on co.xtype=td.xtype
WHERE ta.name =@vtablas
order by co.colorder
open cursor_tabla
fetch next from cursor_tabla into @idtabla, @vcolumna
while @@fetch_status = 0
begin
set @vsentencia = @vsentencia+char(13)+@vcolumna
fetch next from cursor_tabla into @idtabla, @vcolumna
end
close cursor_tabla
deallocate cursor_tabla

set @vsentencia = 'declare @a'+@vtablas+' table
('+left(@vsentencia,len(@vsentencia)-1)+')'
set @vsql ='select * from @a'+@vtablas

Preguntas similare

Leer las respuestas

#6 Maxi [MVP]
04/02/2006 - 15:05 | Informe spam
Hola, a ver, estas replicando tablas en memoria? cual es realmente el
objetivo de hacer esto y complicar la cosa asi? no seria mejor hacerte un
Select Into? que estas buscando realmente resolver que quieres aplicar esto


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Jorge Aguilar" escribió en el mensaje
news:%23$
Mostrar la cita
#7 Maxi [MVP]
04/02/2006 - 15:06 | Informe spam
Hola, ojo con lo que dices, las variables tipo table son mucho mas
eficientes que las tablas temporales, las primeras funcionan sobre la RAM y
las segundas sobre el disco. Ahora, esto no quiere decir siempre usar
variables tipo tabla, pero si la data es razonable entonces son mcuho mejor
que las tablas temporales


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"EL COMPI" <EL escribió en el mensaje
news:
Mostrar la cita
#8 Jorge Aguilar
06/02/2006 - 15:24 | Informe spam
Lo que sucede es que necesito replicar difernetes tipos de datos con una
aplicacion movil, los store son faciles, pero tengo que hacer 50 stores y
depues solo cambiar y pegar, sin embargo seria mas facil a futuro hacer 1
solo store que genera copias de las estructuras de las tablas que deseo
replicar de manera automatica, a esto habria que pensar que cuando el
sofftware cambie de version tendre que volver a crear store procedure es
decir copiar y pegar, cuando es mejor hacer 1 solo esfuerzo.
P.D. no se como se replica en memoria, por eso es que no se si se esta
haciendo eso si o no.

Muchas Gracias
Jorge

"Maxi [MVP]" escribió en el mensaje
news:
Mostrar la cita
esto
Mostrar la cita
con
Mostrar la cita
varchar(3))+','+cast(co.xscale
Mostrar la cita
Ads by Google
Search Busqueda sugerida