René dice:
El ejemplo es muy bueno, se agradece.
Lamentablemente no resulta cuando hago:
SET @SQL = 'DECLARE @TablaTemporal TABLE (ID numeric(18,0) NOT NULL DEFAULT(0))'
Exec(@sql)
SELECT * FROM @TablaTemporal <-- Este select no funciona, ya que la tabla temporal "existe" dentro del EXEC.
Lo tengo que hacer así, ya que mi tabla tiene una cantidad de campos variable.
Si tienen alguna sugerencia/solución se los agradecería.
Comentario publicado 19/05/2010 23:13:00
Sergio dice:
¿Qué es exactamente lo que necesitas hacer con esa tabla de campos variables?
Quizás te pueda servir usar tablas temporales de sesion con # y crearlas con 'select * into'
Te dejó aquí un ejemplo. Si lo ejecutas verás cómo las misma tabla tiene diferentes campos.
--Ejemplo tablas temporales #
select 'a' as a,'b' as b into #a
select * from #a
drop table #a
go
select 'a' as a,'b' as b,'c' as c into #a
select * from #a
drop table #a
go
declare @cmd as nvarchar(4000)
set @cmd='select ''a'' as a,''b'' as b,''c'' as c,''d'' as d into #a' + char(13)
set @cmd=@cmd+'select * from #a' + char(13)
set @cmd=@cmd+'drop table #a'
exec sp_executesql @cmd
Comentario publicado 13/07/2010 11:24:00
pablo dice:
esa no es una tabla temporal, es una VARIABLE tipo 'table'. y en muchos casos son mejores que una tabla temporal.
Las variables de declaran(DECLARE) mientras que las tablas se crean (CREATE).
Salu2
Comentario publicado 02/08/2010 12:29:00
Sergio dice:
Pablo, aunque en muchos casos sean mejores las variables tipo table, no creo q sirva para el caso expuesto por René.
Las variables tipo table sólo existen en el dominio de ejecución actual, mientras que las tablas temporales existen durante toda la sesión.
Dependerá de las necesidades usar unas u otras.
Comentario publicado 03/08/2010 11:40:00
sqlman dice:
excelente me ayudó mucho
Comentario publicado 18/11/2010 19:23:00
Cordell Sprenger dice:
internet tv online
Comentario publicado 13/04/2011 14:53:00
Dejar un comentario