Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/01/2004, 23:57
OXIGENO
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 9 meses
Puntos: 2
Haber... vamos a explicarlo un poco mejor....
Mejor pasamos una parte en limpio....



Código PHP:
@cComando  AS char(5000)               
SELECT @cComando  ="IF NOT EXISTS(SELECT Id_item FROM " +@TempTable" WHERE NROAFILIADO="+@nroAfiliado+" and Id_item like ' % ') BEGIN
                                INSERT INTO " 
+@TempTable+"(retencion,nropliquida,tipoliquida,anioliquida,mesliquida,aniocliquida,mescliquida"+",nroAfiliado,apellNombre,CodAJubila,sMinJub,CargoLiquida,TipoDocu,NroDocu,AnioAntigu,RemunCApo,DevolucCApo,SueldAnualC"+",Baja,DiasLiquid,DiasSubro,CantJornal,SituaRevista,TareaDiferenc,FechaIn,FechaVencCon,AportJubil,ReajApoPer,ContribJubil"+",DescSegurObl,DescSegurOT,DescSegurOC,DescSegurOF,DescSegurCony,PrimasPatroART) VALUES('"+@retencion+"','"+@nropliquida+"','"+@tipoliquida+"','"+@anioliquida+"','"+@mesliquida+"','"+@aniocliquida+"','"+@mescliquida+"','"+@nroAfiliado+"','"+@apellNombre+"','"+@CodAJubila+"','"+@sMinJub+"','"+@CargoLiquida+"','"+@TipoDocu+"','"+@NroDocu+"','"+@AnioAntigu+"','"+@RemunCApo+"','"+@DevolucCApo+"','"+@SueldAnualC+"','"+@Baja+"','"+@DiasLiquid+"','"+@DiasSubro+"','"+@CantJornal+"','"+@SituaRevista+"','"+@TareaDiferenc+"','"+@FechaIn+"','"+@FechaVencCon+"','"+@AportJubil+"','"+@ReajApoPer+"','"+@ContribJubil+"','"+@DescSegurObl+"','"+@DescSegurOT+"','"+@DescSegurOC+"','"+@DescSegurOF+"','"+@DescSegurCony+"','"+@PrimasPatroART+"') 
                                SELECT " 
+ @TempTable ".Id_item, " + @TempTable ".retencion, " + @TempTable ".nropliquida, " + @TempTable ".tipoliquida, " + @TempTable ".anioliquida, " + @TempTable ".mesliquida, " + @TempTable ".aniocliquida, " + @TempTable ".mescliquida, " + @TempTable ".nroAfiliado, " + @TempTable ".apellNombre, " + @TempTable ".CodAJubila, " + @TempTable ".sMinJub, " + @TempTable ".CargoLiquida, " + @TempTable ".TipoDocu, " + @TempTable ".NroDocu, " + @TempTable ".AnioAntigu, " + @TempTable ".RemunCApo, " + @TempTable ".DevolucCApo, " + @TempTable ".SueldAnualC, " + @TempTable ".Baja, " + @TempTable ".DiasLiquid, " + @TempTable ".DiasSubro, " + @TempTable ".CantJornal, " + @TempTable ".SituaRevista, " + @TempTable ".TareaDiferenc, " + @TempTable ".FechaIn, " + @TempTable ".FechaVencCon, " + @TempTable ".AportJubil, " + @TempTable ".ReajApoPer, " + @TempTable ".ContribJubil, " + @TempTable ".DescSegurObl, " + @TempTable ".DescSegurOT, " + @TempTable ".DescSegurOC, " + @TempTable ".DescSegurOF, " + @TempTable ".DescSegurCony, " + @TempTable ".PrimasPatroART FROM "+ @TempTable " ORDER BY " + @TempTable ".Id_item DESC
                                END 
                                ELSE BEGIN 
                                SELECT " 
+ @TempTable ".Id_item, " + @TempTable ".retencion, " + @TempTable ".nropliquida, " + @TempTable ".tipoliquida, " + @TempTable ".anioliquida, " + @TempTable ".mesliquida, " + @TempTable ".aniocliquida, " + @TempTable ".mescliquida, " + @TempTable ".nroAfiliado, " + @TempTable ".apellNombre, " + @TempTable ".CodAJubila, " + @TempTable ".sMinJub, " + @TempTable ".CargoLiquida, " + @TempTable ".TipoDocu, " + @TempTable ".NroDocu, " + @TempTable ".AnioAntigu, " + @TempTable ".RemunCApo, " + @TempTable ".DevolucCApo, " + @TempTable ".SueldAnualC, " + @TempTable ".Baja, " + @TempTable ".DiasLiquid, " + @TempTable ".DiasSubro, " + @TempTable ".CantJornal, " + @TempTable ".SituaRevista, " + @TempTable ".TareaDiferenc, " + @TempTable ".FechaIn, " + @TempTable ".FechaVencCon, " + @TempTable ".AportJubil, " + @TempTable ".ReajApoPer, " + @TempTable ".ContribJubil, " + @TempTable ".DescSegurObl, " + @TempTable ".DescSegurOT, " + @TempTable ".DescSegurOC, " + @TempTable ".DescSegurOF, " + @TempTable ".DescSegurCony, " + @TempTable ".PrimasPatroART FROM "+ @TempTable " ORDER BY " + @TempTable ".Id_item DESC
                               END"
                   
EXEC sp_sqlexec @cComando 

Haber si ahora se entiende mejor
Me refiero a esto: (lo saque de un post de este foto)
"El problema que tiene hacer eso (utilizar sp_sqlexec con cadenas tan largas), es, que cada vez que ejecutes ese procedimiento almacenado se compila la instrucción, con lo que pierdes parte de la eficiencia de los procedimientos almacenados"


Como puedo mejorar esto??? haciendo otros SP hijos por decirlo asi?
__________________
tech-nico.com

Última edición por OXIGENO; 19/01/2004 a las 23:59