Estimados Hombres/Mujeres de SQL Server,
He montado una infraestructura de dos servidores SQL Server con replicación.
La situación es la siguiente:
Tengo dos grupos de programadores. Grupo A, se dedica a programar en Server
A. Grupo B, se dedica a programar en Server B. Una aplicación de Grupo A,
necesita acceder a una bases de datos de Server B y actualizarla.
Ahora bien, me han solicitado, por unos problemas de los desarrollos del
grupo B, que la aplicación de grupo A, no acceda a datos en server B. Debe
leer todo desde su propio servidor, server A y actualizar allí.
Estudiando un poco las posibilidades, he dado con el escenario de crear una
publicación en server B con la posibilidad de que el servidor suscriptor
(server A) actualice algunos datos de las publicaciones. ¿Es la mejor
opción?
Yo ya tenía configurada una réplica transaccional pero el suscriptor no
puede actualizar las publicaciones. Hasta aquí, logro los objetivos hasta la
mitad. El grupo A, puede leer los datos del server B, en su propio servidor.
Los datos que yo quiera, pero no pueden actualizarle al grupo B.
Tratando de configurar esta publicación actualizable, ya mis instrucciones
de Update sobre las tablas de la base de datos de publicación fallan con
mensaje 216, "Column name or number of supplied values does not match table
definition". Asumo que eso debe tener que ver con el siguiente mensaje que
me da al configurar la publicación y definir los artículos:
Todos los artículos de una publicación que admite suscripciones
actualizables contienen una columna uniqueidentifier denominada
'MSrepl_tran_version' usada para mantener un seguimiento de los cambios
realizados en los datos replicados. SQL Server agrega esta columna a las
tablas publicadas que no la tienen.
Al agregar una columna nueva, ocurre lo siguiente:
» Las instrucciones INSERT sin listas de columnas dan error.
» Aumenta el tamaño de la tabla.
SQL Server agregará una columna uniqueidentifier a cada una de las tablas
siguientes cuando se crea la publicación.
[dbo].[op_cabe]
¿Debo modificar todas las instrucciones? ¿Mi solución es la mejor? ¿Existe
otra forma de hacerlo?
Saludos a todos y gracias de antemano.
Leer las respuestas