Ver Mensaje Individual
  #5  
Antiguo 02-09-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No pude probarlo antes de enviarlo.
Cambié contador por id (es el nombre que queria darle)
Agregue id=id+1, para incrementar el contador.
Código SQL [-]
create procedure REORDENAR
as
declare variable clave char(8);
declare variable id integer;
begin
   /* Pongo a 0 el contador */
   id = 0;
   /* Recorro toda la tabla */
   /* RDB$DB_KEY es un campo que identifica a cada registro */
   FOR select RDB$DB_KEY from TABLA do
         into :clave
   DO
   begin
       /* Incremento el contador */
       id = id + 1;
       /* Modifico el CAMPO_ID con el contador */
       update TABLA 
       set CAMPO_ID = :id
       where RDB$DB_KEY=:CLAVE;
   end
end

Ten en cuenta que si quieres que el contador está ordenado, puedes ordenar el for select ...
Código SQL [-]
...
   /* Recorro toda la tabla */
   /* RDB$DB_KEY es un campo que identifica a cada registro */
   FOR select RDB$DB_KEY from TABLA do
         ORDER BY campos_a_ordenar
         into :clave
   DO
...
Responder Con Cita