si pusiste todos iguales podrias crear un cursor y recorrer los campos e ir actualizando uno se me ocurre aunque quiza alguien mas sepa una mejor
Código SQL
[-]
declare claves cursor
for
select * from temporal
OPEN claves
declare @con int
declare @cod varchar(20)
set @con=1
FETCH NEXT FROM claves
WHILE @@FETCH_STATUS = 0
BEGIN
if (@con<10)
begin
update temporal set codigo = replace(codigo,'a01','a0'+cast(@con as varchar(3)))
where current of claves
end
else
begin
update temporal set codigo = replace(codigo,'a01','a'+cast(@con as varchar(3)))
where current of claves
end
set @con=@con+1
FETCH NEXT FROM claves
end
close claves
deallocate claves