Sobre la pregunta número 3, se puede hacer esto.
Código SQL
[-]
UPDATE Tabla
SET
CODIGOANT = CODIGO
,CODIGO = VALORNUEVO
WHERE IDTABLA = ???
Lo que hace es actualiza el CODIGOANT con el CODIGO en este caso el antiguo que se tenia, después actualiza el CODIGO con el VALORNUEVO.
Un saludo.