Forums Últimos mensajes - Powered by IBM
 

Replicación con nombres de tabla con espacios

21/03/2005 - 11:17 por Rafael Blanco | Informe spam
¿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

#1 Eladio Rincón
21/03/2005 - 15:34 | Informe spam
Hola Rafael,

no se si está en la lista de problemas solucionados en SP4 (que está en
beta)
http://support.microsoft.com/kb/888799/en-us

Sin embargo, podrías crear vistas indexadas sobre las tablas que quieres
replicar, y construir la replicación sobre las vistas.

Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Rafael Blanco" wrote in message
news:
¿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.

Preguntas similares