Cita: ¿Hay una forma de cambiar el comando de tal modo que se ejecuta sobre toda la BD del tirón?
No, porque el algoritmo para generar una consulta que realice una iteración sobre N tablas y N campos (no nos olvidemos que se trata de valores indefinidos), sobre una base o bases indeterminadas, sería demasiado complicado e inseguro, porque eventualmente podría realizar cambios sobre campos en los que no se desea cambiar.
¿Se entiende la idea?
La solución que realizaste es, en definitiva, el camino más corto siempre...
Cita: Ahora solamente me quedo con la duda de por qué el SELECT REPLACE no funcionó.
Probablemente nunca lo sabré, a no ser que alguien arroja luz sobre el misterio.
Bueno, el misterio lo resuelve nuevamente el manual, que dice:
Cita: Actualmente, no puede reemplzar en una tabla y seleccionar de la misma en una subconsulta.
Es decir, no funciona, simplemente.
A menos que me equivoque, el problema estaría en el bloqueo de escritura que pone el INSERT y que es el mismo que pone el REPLACE. Entre otras cosas, porque no se espera que se intente reemplazar consigo mismo, ya que para ello existe el UPDATE.
Posiblemente sea uno de los temas pendiente de desarrollo en el proyecto.