Ich lösche fälschlicherweise alle Zeilen aus einer MS SQL 2000-Tabelle, die bei der Mergereplikation verwendet wird (die Tabelle befindet sich auf dem Herausgeber). Ich fügte das Problem dann hinzu, indem ich eine DTS-Operation verwendete, um die Zeilen aus einer Sicherungsdatenbank abzurufen und die Tabelle erneut zu füllen.Löschen von Zeilen aus einer SQL-Tabelle, die für die Replikation markiert ist
Dies hat das folgende Problem erstellt: Der Löschvorgang markiert die Zeilen zum Löschen auf den Clients, aber die DTS-Operation umgeht die Replikationstrigger, so dass die importierten Zeilen nicht zum Einfügen auf den Abonnenten markiert sind. Tatsächlich verlieren die Abonnenten die Daten, obwohl sie sich auf dem Herausgeber befinden.
Also dachte ich "keine Sorgen" Ich werde nur die Zeilen wieder löschen und dann fügen Sie sie korrekt über eine Insert-Anweisung, und sie werden dann für die Einfügung auf die Abonnenten markiert werden.
Das ist mein Problem: Ich kann die DTSed-Zeilen nicht löschen, da ich eine doppelte Schlüsselzeile im Objekt 'MSmerge_tombstone' mit dem eindeutigen Index 'uc1MSmerge_tombstone' nicht einfügen kann. " Error. Was ich tun möchte ist, die Zeilen aus der Tabelle zu löschen, die den Merge-Replikationstrigger umgehen. Ist das möglich? Ich möchte die Replikation nicht entfernen und wiederholen, da die Abonnenten mehr als 50 Windows Mobile-Geräte haben.
Edit: Ich habe versucht, den Befehl Tabelle abschneiden. Das gibt den folgenden Fehler "Tabelle xxxx kann nicht abgeschnitten werden, da es für Replikation veröffentlicht wird"
Gute Idee ... aber ja, ich habe ... Ich bekomme eine "kann Tabelle nicht abschneiden, weil es für die Replikation veröffentlicht wird." Error. – MBoy