Replicación en SQL Server 2000

20/12/2008 - 01:19 por Juan Manuel Porras Gálvez | Informe spam
Hola,

sólo quería saber porqué en una replicación con SQL Server 2000 de mezcla
con un publicador y un subscriptor de extracción, cuando trato de sincronizar
una tabla, únicamente me respeta los cambios realizados en el publicador o en
el subscriptor. Es decir, si hago cambios en un mismo registro de una tabla
en ciertas columnas en el publicador y hago otros cambios en el subscriptor
que referencian a columnas diferentes, ¿porqué realmente no puedo mezclar en
el mismo registro los cambios realizados en ambos agentes?.

Muchas gracias,
Juanma.

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
21/12/2008 - 11:12 | Informe spam
Hola Juanma,

El comportamiento en la resolución de conflictos depende de la granularidad
configurada para la detección de conflictos. En su caso creo que lo que
desea es configurar esa granularidad a nivel de columna y no de fila. Puede
cambiar esto bien desde el Enterprise Manager
(http://msdn.microsoft.com/en-us/library/aa216620(SQL.80).aspx) o bien
utilizando T-SQL
(http://msdn.microsoft.com/en-us/library/aa198186(SQL.80).aspx). Para más
información sobre la detección de conflictos le recomiendo que consulte la
sección "Row-Level Tracking and Column-Level Tracking" de la sección
replicación de los BOL
(http://msdn.microsoft.com/en-us/library/aa179429(SQL.80).aspx)

Un saludo,

Rubén Garrigós
Solid Quality Mentors

"Juan Manuel Porras Gálvez" wrote in message
news:
Hola,

sólo quería saber porqué en una replicación con SQL Server 2000 de mezcla
con un publicador y un subscriptor de extracción, cuando trato de
sincronizar
una tabla, únicamente me respeta los cambios realizados en el publicador o
en
el subscriptor. Es decir, si hago cambios en un mismo registro de una
tabla
en ciertas columnas en el publicador y hago otros cambios en el
subscriptor
que referencian a columnas diferentes, ¿porqué realmente no puedo mezclar
en
el mismo registro los cambios realizados en ambos agentes?.

Muchas gracias,
Juanma.

Respuesta Responder a este mensaje
#2 Juan Manuel Porras Gálvez
21/12/2008 - 12:47 | Informe spam
Hola Rubén,

en primer lugar, muchas gracias por tu respuesta. El caso es que la
granularidad la tengo puesta a nivel de columna; es decir, parto de la base
de que un conflicto sólo se produce si el publicador y el suscriptor escriben
sobre la misma columna. El caso es que tengo una columna de tipo fecha dentro
de las tablas que me sirve para saber qué registro de la tabla ha sido
escrito en último lugar. Ahora bien, la replicación está configurada para que
prevalezca el último valor escrito en una misma columna tanto por publicador
como suscriptor. Me funciona así para una fila, pero no para columnas
individuales.

En este sentido, empiezo a pensar que las actualizaciones que hago en la
aplicación van referidas a todas las columnas; o sea, cuando tengo que
actualizar un campo de una fila, actualizo todos los campos de todas las
filas, independientemente de que se hayan modificado sus valores. ¿Puede ser
esa la causa de que me esté tomando todos los valores del registro modificado
y no esté funcionando a nivel de columna?.

Muchas gracias por tu colaboración.

Saludos,
Juanma.

"Rubén Garrigós" wrote:

Hola Juanma,

El comportamiento en la resolución de conflictos depende de la granularidad
configurada para la detección de conflictos. En su caso creo que lo que
desea es configurar esa granularidad a nivel de columna y no de fila. Puede
cambiar esto bien desde el Enterprise Manager
(http://msdn.microsoft.com/en-us/library/aa216620(SQL.80).aspx) o bien
utilizando T-SQL
(http://msdn.microsoft.com/en-us/library/aa198186(SQL.80).aspx). Para más
información sobre la detección de conflictos le recomiendo que consulte la
sección "Row-Level Tracking and Column-Level Tracking" de la sección
replicación de los BOL
(http://msdn.microsoft.com/en-us/library/aa179429(SQL.80).aspx)

Un saludo,

Rubén Garrigós
Solid Quality Mentors

"Juan Manuel Porras Gálvez" wrote in message
news:
> Hola,
>
> sólo quería saber porqué en una replicación con SQL Server 2000 de mezcla
> con un publicador y un subscriptor de extracción, cuando trato de
> sincronizar
> una tabla, únicamente me respeta los cambios realizados en el publicador o
> en
> el subscriptor. Es decir, si hago cambios en un mismo registro de una
> tabla
> en ciertas columnas en el publicador y hago otros cambios en el
> subscriptor
> que referencian a columnas diferentes, ¿porqué realmente no puedo mezclar
> en
> el mismo registro los cambios realizados en ambos agentes?.
>
> Muchas gracias,
> Juanma.
>

Respuesta Responder a este mensaje
#3 Rubén Garrigós
12/01/2009 - 20:04 | Informe spam
Si, muy probablemente el problema viene por ahi. Una buena práctica es
indicar únicamente las columnas que van a modificarse en los updates y no
todos los valores.

Un saludo,

Rubén Garrigós
Solid Quality Mentors

"Juan Manuel Porras Gálvez" wrote in message
news:
Hola Rubén,

en primer lugar, muchas gracias por tu respuesta. El caso es que la
granularidad la tengo puesta a nivel de columna; es decir, parto de la
base
de que un conflicto sólo se produce si el publicador y el suscriptor
escriben
sobre la misma columna. El caso es que tengo una columna de tipo fecha
dentro
de las tablas que me sirve para saber qué registro de la tabla ha sido
escrito en último lugar. Ahora bien, la replicación está configurada para
que
prevalezca el último valor escrito en una misma columna tanto por
publicador
como suscriptor. Me funciona así para una fila, pero no para columnas
individuales.

En este sentido, empiezo a pensar que las actualizaciones que hago en la
aplicación van referidas a todas las columnas; o sea, cuando tengo que
actualizar un campo de una fila, actualizo todos los campos de todas las
filas, independientemente de que se hayan modificado sus valores. ¿Puede
ser
esa la causa de que me esté tomando todos los valores del registro
modificado
y no esté funcionando a nivel de columna?.

Muchas gracias por tu colaboración.

Saludos,
Juanma.

"Rubén Garrigós" wrote:

Hola Juanma,

El comportamiento en la resolución de conflictos depende de la
granularidad
configurada para la detección de conflictos. En su caso creo que lo que
desea es configurar esa granularidad a nivel de columna y no de fila.
Puede
cambiar esto bien desde el Enterprise Manager
(http://msdn.microsoft.com/en-us/library/aa216620(SQL.80).aspx) o bien
utilizando T-SQL
(http://msdn.microsoft.com/en-us/library/aa198186(SQL.80).aspx). Para más
información sobre la detección de conflictos le recomiendo que consulte
la
sección "Row-Level Tracking and Column-Level Tracking" de la sección
replicación de los BOL
(http://msdn.microsoft.com/en-us/library/aa179429(SQL.80).aspx)

Un saludo,

Rubén Garrigós
Solid Quality Mentors

"Juan Manuel Porras Gálvez" wrote in message
news:
> Hola,
>
> sólo quería saber porqué en una replicación con SQL Server 2000 de
> mezcla
> con un publicador y un subscriptor de extracción, cuando trato de
> sincronizar
> una tabla, únicamente me respeta los cambios realizados en el
> publicador o
> en
> el subscriptor. Es decir, si hago cambios en un mismo registro de una
> tabla
> en ciertas columnas en el publicador y hago otros cambios en el
> subscriptor
> que referencian a columnas diferentes, ¿porqué realmente no puedo
> mezclar
> en
> el mismo registro los cambios realizados en ambos agentes?.
>
> Muchas gracias,
> Juanma.
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida