Return to Snippet

Revision: 31814
at September 14, 2010 03:08 by derebus


Initial Code
DECLARE  @Campo1 AS INTEGER
DECLARE  @Campo2 AS INTEGER
	
DECLARE Registros CURSOR FOR
SELECT Campo1, Campo2 from Tabla
OPEN Registros
FETCH NEXT FROM Registros INTO @Campo1,@Campo2
WHILE @@FETCH_STATUS = 0
BEGIN
   INSERT INTO DB.dbo.Tabla (Campo1, Campo2) VALUES (@Campo1,@Campo2)
   FETCH NEXT FROM Registros INTO @Campo1,@Campo2
END
CLOSE Registros
DEALLOCATE Registros

Initial URL
http://www.forosdelweb.com/f15/comparar-2-tablas-339906/

Initial Description
Declaramos tantas variables como campos vaya a devolver la select que nos estamos currando para el cursor, en este ejemplo con dos campos vamos contentos:

    * declare @campo1 int
    * declare @campo2 int

Ahora declaramos el cursor, al cual lo nombraremos Registros.

    * DECLARE Registros CURSOR FOR
    * select campo 1, campo2 from tabla

Abrimos el cursor:
    * open Registros 

Y jugamos con él, en este caso primero le diremos que meta los datos del primer registro en las variables:

    * FETCH NEXT FROM Registros INTO @Campo1,@Campo2

Abrimos un while para recorrer el cursor hasta que no queden registros

    * while @@fetch_status>=0
    * begin

aqui hacemos lo que tengamos que hacer

    * INSERT INTO DB.dbo.Tabla (Campo1, Campo2) VALUES (@Campo1,@Campo2)

le volvemos a decir que meta los campos del siguiente registro en nuestras variables

    * fetch next from Registros  into @campo1 ,@campo2

cerramos el while

    * end

cerramos el cursor

    * close Registros
    * deallocate Registros

Initial Title
Pasar data de una tabla a otra

Initial Tags
data

Initial Language
SQL