Tengo un servidor MS SQL con un servidor MySQL vinculado. Necesito sincronizar parcialmente una tabla entre los dos servidores. Esto se realiza en tres pasos y se basa en una condición:Actualizar la consulta en la tabla MySQL vinculada de SQL Server
Eliminar todas las filas de la tabla de MySQL que no satisfacen la condición
Insertar todas las nuevas filas en la tabla de MySQL que satisfacen la condición
actualización de todas las filas del servidor MySQL que satisfacen la condición y tienen diferentes datos entre MySQL y SQL Server
Los pasos 1 y 2 siempre se ejecutan sin problemas. Pero el paso 3 no se ejecutará si hay algo que actualizar. La consulta falla con la siguiente excepción: El conjunto de filas utilizaba simultaneidad optimista y el valor de una columna se modificó después de que la última fila se haya recuperado o resincronizado por última vez.].
Esta es la consulta que se ejecuta:
update mysqlserver...subscribers
set Firstname = Voornaam,
Middlename = Tussenvoegsel,
Surname = Achternaam,
email = e-mail
from mysqlserver...subscribers as b, tblkandidaat
where (b.kandidaatid = tblkandidaat.kandidaatid) and
(tblkandidaat.kandidaatid in (
select subsc.kandidaatid
from mysqlserver...subscribers subsc inner join tblKandidaat
on (subsc.kandidaatid=tblKandidaat.kandidaatid)
where (subsc.list=1) and
((subsc.firstname COLLATE Latin1_General_CI_AI <> Voornaam
or (subsc.middlename COLLATE Latin1_General_CI_AI <> Tussenvoegsel)
or (subsc.surname COLLATE Latin1_General_CI_AI <> tblKandidaat.Achternaam)
or (subsc.email COLLATE Latin1_General_CI_AI <> tblKandidaat.e-mail))
));
Alguien tiene una idea acerca de cómo evitar esto?
Perdón por el final de esta pregunta. Usé la solución propuesta por Emtucifor y funcionó. ¡Gracias a todos! – Birger