Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/02/2012, 09:16
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Alternativa a Insert Exec Anidado

Podrias poner un ejemplo de la sintaxis que te marca el error..

los siguientes funcionan en SQL 2008...

Código:
if OBJECT_ID('tempdb..#tmpUno') is not null drop table #tmpUno

create table #tmpUno (id int identity (1,1), valor VARCHAR(10))


INSERT INTO #tmpUno
execute (' 
select ''primero''
')

INSERT INTO #tmpUno 
execute ('
execute sp_executesql N''SELECT ''''segundo'''' '' 
')

alter table #tmpUno add  otraColumn varchar(10) not null default('')

execute ('INSERT INTO #tmpUno(valor, otraColumn) 
execute sp_executesql N''SELECT ''''tercero'''', ''''dato3'''' '' 
')

select * from #tmpUno

---------------------------------------------------------
Resultado!

id          valor      otraColumn
----------- ---------- ----------
1           primero    
2           segundo    
3           tercero    dato3

Solo como comentario, por experiencia propia evitamos el uso de alter tables para generar resultados de tablas con columnas dinamicas..

Lo mejor es regresar la informacion segun su estructura de dominio original y es en el lado del cliente (aplicacion o servicio de reporte) en donde se le da la vista o el formato requerido por el usuario..

esto te libera muchos recursos en tu servidor sql y el formateo del lado del cliente (aplicacion) es mucho mas eficiente y rapido...



Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 07/02/2012 a las 09:24