Pregunta

Yo erróneamente eliminar todas las filas de un MS SQL 2000 tabla que se utiliza en la replicación de mezcla (la tabla está en el editor).Entonces me agrava el problema mediante un DTS operación para recuperar las filas de una copia de seguridad de base de datos y volver a llenar la tabla.

Esto ha creado el siguiente problema:La operación de eliminación marcado de las filas de la eliminación en los clientes, pero el DTS operación evita la replicación de desencadenadores para la importación de las filas no están marcados para su inserción en los suscriptores.En efecto, los suscriptores de perder los datos, aunque es en el publicador.

Así que yo pensé: "no te preocupes" me acaba de borrar las filas de nuevo y, a continuación, agregar correctamente a través de una instrucción insert y luego van a ser marcados para su inserción en los suscriptores.

Este es mi problema:No puedo eliminar el DTSed filas debido a que tengo un "No se puede insertar una fila de clave duplicada en el objeto 'MSmerge_tombstone' con índice único 'uc1MSmerge_tombstone'." error.Lo que me gustaría hacer es de alguna manera eliminar las filas de la tabla evitando la duplicación de mezcla detonante.Es esto posible?No quiero quitar y volver a hacer el replicación debido a los suscriptores son 50+ de dispositivos de windows mobile.

Editar:He probado el comando Truncate Table.Esto da el siguiente error "No se puede truncar la tabla xxxx porque se publica para la replicación"

¿Fue útil?

Solución 6

Gracias por los consejos...finalmente he encontrado una solución:

He eliminado la combinación de eliminar el gatillo de la tabla
Eliminado el DTSed filas
Recreado la combinación de desencadenador delete
Añadido mi filas correctamente mediante una instrucción insert.

Yo estaba un poco preocupado pelea jugando con la combinación de factores desencadenantes, pero cada cosa aparece para funcionar correctamente.

Otros consejos

Has probado a truncar la tabla?

Usted puede tener que truncar la tabla y restablecer el IDENTIFICADOR de campo a 0 si usted necesita las filas insertadas a tener el mismo ID.Si no, sólo truncada y que debería estar bien.

Usted también puede buscar en abandonar temporalmente el índice único y la adición de nuevo cuando haya terminado.

Buscar en sp_mergedummyupdate

Sería la creación de una segunda tabla de ser una opción?Puede crear una segunda tabla, rellenarlo con los datos necesarios, agregar las restricciones/índices, a continuación, coloque la primera tabla y cambiar el nombre de su segunda tabla.Esto debe darle los datos con las teclas de la derecha...y todo debe consistir de instrucciones SQL que permiten fluir hacia la replicación.Simplemente no es probablemente el mejor en rendimiento...y sin duda el de imponer un cierto riesgo.

No he probado esto de primera mano en un entorno replicado...pero puede ser, al menos, vale la pena probar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top