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
id = 0;
FOR select RDB$DB_KEY from TABLA do
into :clave
DO
begin
id = id + 1;
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
[-]
...
FOR select RDB$DB_KEY from TABLA do
ORDER BY campos_a_ordenar
into :clave
DO
...