¿Ha probado alguien a hacer una replicación transaccional de tablas que
contengan espacios en el nombre? Es de risa, no funciona ni a la de tres.
El sistema genera tres procedimientos almacenados por cada articulo para
realizar las inserciones, actualizaciones y borrados. Para nombrarlos, añade
un prefijo al nombre de la base de datos. Por ejemplo, para las inserciones
convierte Cliente en sp_MSins_Cliente.
El problema aparece cuando el nombre de la tabla contiene espacios o algún
carácter especial (con dos guiones es muy divertido --). Durante la
replicación los comandos generados contienen llamadas a dichos
procedimientos, como no le agregan delimitadores, supone que se trata de dos
o más identificadores (separados por espacios) y devuelve un error de
sintaxis.
La referencia a este error (con guiones supone que el resto de la línea es
un comentario...) la podéis encontrar en la web de Microsoft:
http://support.microsoft.com/?id06608. Fijaos en la fecha, desde hace año y
medio; y por supuesto, sin solucionar.
Por cierto, la solución que dan es estupenda, cambiar el nombre de las
tablas, voy a llamar ahora mismo a Navision para que me cambien el nombre de
las 1600 tablas que tiene mi base de datos que no me gustan los nombres,
seguro que están encantados de ponerse a ello. De hecho, supongo que ya
estarán haciéndolo ahora que lo compró Microsoft :-)
Bueno gracias a todos, si alguien sabe alguna solución (alguna que funcione)
le estaré muy agradecido. Tened en cuenta que en la replicación transaccional
con ACTUALIZACIÓN EN COLA no se le puede especificar manualmente el nombre de
los procedimientos almacenados de los que estamos hablando.
Gracias, gracias, gracias.
Leer las respuestas