SELECT thetable COUNT TO maxId SET ORDER TO tag_sequenceField DESC LOCATE IF sequenceField > m.maxId maxId = sequenceField ENDIF * BEGIN TRAN SCAN IF m.maxId <> sequenceField sequenceField = sequenceField replace sequenceField with m.maxId * update ... SET foreignkey = thetable.sequenceField WHERE foreignkey = m.sequenceField ENDIF maxId = m.maxId - 1 ENDSCAN * END TRAN * if you want start with 1, now you can reprocess * in ascending and replace sequenceField SET ORDER TO tag_sequenceField ASC SCAN IF sequenceField <> RECNO() sequenceField = sequenceField replace sequenceField with RECNO() * update ... SET foreignkey = thetable.sequenceField WHERE foreignkey = m.sequenceField ENDIF ENDSCAN