No he visto la estructura del esquema pero, segun lo que el menciona aca no tiene pinta de datos redundantes sino relacionales entre distintas tablas mediante el campo ID
lo cual no se sale de la normalizacion.
Te recomiendo que leas sobre TOP en SQL Server... si fuese MySQL usase la clausula LIMIT 3,4 donde el 3 indicaria el indice de la fila por donde empezar a leer el arreglo y 4 pues la siguiente data o el siguiente indice... los registros en los campos son arreglos se acceden a ellos mediante un indice. Yo no se lamentablemente como funciona la clausula TOP en SQL Server pero, mira ver si puedes hacer lo msimo con esta como hacen con LIMIT de MySQL especificarle desde que indice hasta que indice leer (actualizar) en este caso.
BTW....
Otra forma, si quieres actualizar todos los campos codigo que sean igual a 200 (por ejemplo) en vez de filtrar por ID filtrate por campo asi:
SQL = "Update tabla1 set codigo=1 where campo = 200"
Si son varios campos:
SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400)"
Y si quieres optimizar la consulta (No se si funciona en SQL Server ) pero:
SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400) using(id)"
Sino funciona, pues:
SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400) and id = 1"
Agur...