miércoles, 20 de mayo de 2015

SQL - Sintaxis de un Cursor


/*Declaracion de variables */
DECLARE @var1   NUMERIC(18,0),
        @var2   SMALLINT,
 
/*Filas a recorrer*/
 DECLARE c_ejemplo CURSOR FOR
 select campo1,
        campo2    
 from dbo.t_mi_tabla
/*Apertura del Cursor*/
 OPEN c_ejemplo
 FETCH c_ejemplo
 INTO @var1,  
      @var2
     
 WHILE (@@FETCH_STATUS = 0)
 BEGIN
/*Instrucciones para cada fila recorrida*/
  INSERT INTO dbo..t_mi_tabla2
          ( campo1 ,
            campo2
          )
  VALUES  ( @var1 , -- correlativo - numeric
            @var2        
          )
/*Mensaje en caso de error (opcional)*/  
  IF @@error <> 0
  BEGIN
   Print 'Error al Insertar'
   RETURN
  END

 FETCH c_ejemplo
 INTO @var1,  
      @var2  
           
END
/*Cierre y final del Cursor*/
CLOSE c_ejemplo
DEALLOCATE c_ejemplo

No hay comentarios:

Publicar un comentario