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