Hola de nuevo:
tengo una matriz (60000 x 108) con valores de precios, a partir de esta debo 
generar otra (igual dimension) luego de haber sometido los valores a una formula
((precio actual - precio anterior)/precio actual), dado que son 108 campos y que
podrian aumentar en el futuro ya que son fechas, pretendo usar la tabla syscolumns
para obtener el dinamismo necesario. Entonces la idea es poder obtener el nombre
(en este caso serie) de la primera fila y moverse hacia la derecha con  los valores de 
syscolumns realizando el calculo y actualizando o insertando en la matriz nueva 
en la fecha indicada.
Esta rutina la implemente en visual y funciono para una matriz de (10 x 108) pero
tomo un poco de tiempo, ni hablar de 60.000 filas....
Adjunto el pseudo-codigo en Tsql por si les queda mas claro lo que intento.
 
Desde ya muchas gracias......
 
 
 
CREATE PROCEDURE [sp_llena_matriz]
 
 AS
 
DECLARE @campo varchar (255)
DECLARE @sql varchar (255)
DECLARE @up varchar (255)
DECLARE @id int
DECLARE @retorno real
DECLARE @pt real
DECLARE @pt1 real
DECLARE @serie char (50)
 
SELECT @pt1=0
 
DECLARE cur_ser CURSOR FOR SELECT serie FROM copia_cintap ORDER BY serie
 
DECLARE cur_colu CURSOR FOR 
SELECT  name FROM syscolumns   WHERE  (id=32165421 and name<> 'serie' ) order by name
 
OPEN cur_ser
FETCH NEXT FROM cur_ser into @serie
 
WHILE (@@fetch_status =0)
BEGIN
	OPEN cur_colu
	FETCH NEXT FROM cur_colu INTO @campo
	WHILE (@@fetch_status =0)
	  BEGIN
		--open cur_copia 
   		--fetch next from cur_copia into @pt   
		SELECT @pt="select "+ @campo +" from copia_cintap where serie = '" + @serie + "'"      
                          if (@pt<>null or @pt <>'')  
		begin
    		   SELECT @retorno=((@pt-@pt1)/@pt)
 	                 SELECT @sql= "UPDATE copia_cintap SET "+ @campo + " = " + @retorno +"  where serie ='" + @serie + "'"
		    SELECT @pt1=@pt
		end
		if (@pt = null or @pt = '')  
                             begin
		     SELECT @sql= "UPDATE copia_cintap SET "+ @campo + " = 0  where serie ='" + @serie + "'"
		     SELECT @pt1=0
		  end			
 		EXECUTE (@sql) 
		FETCH NEXT FROM cur_colu INTO @campo  
	END
	--close cur_copia
	--deallocate cur_copia
	CLOSE cur_colu
	DEALLOCATE cur_colu
            FETCH NEXT FROM cur_ser INTO @serie
END
 
close cur_ser
deallocate cur_ser 
   
 

