Hallo zusammen
ich habe eine Datenbank, die an 4 Standorte repliziert wird. Einige Tabellen nur ReadOnly für die Abonnenten, einige bidirektional. Problem ist, daß am Serverstandort Berechtigungen geändert wurden, und dadurch die Replikation für ein paar Tage nicht lief. Beim Reinitialisieren konnte nicht alle Daten von den Abonnenten zurück gewonnen werden. Nachdem die Replikation jetzt wieder sauber läuft, wollte ich jetzt per folgendem
SQL die Daten aus dem Backup zurückspielen
Delphi-Quellcode:
SET IDENTITY_INSERT
db.dbo.Table
ON
GO
Insert into
db.dbo.Table (ID, Feld1, Feld2, rowguid)
select ID, Feld1, Feld2, rowguid from Backup.dbo,Table
where (rowguid
not in (select rowguid from
db.dbo.Table ))
GO
SET IDENTITY_INSERT
db.dbo.Table OFF
Im lokalen Test funktionierte das einwandfrei, in den Echtdaten wird das aber durch die Replikation verhindert. Es kommt die Meldung
Zitat:
The insert failed. It conflicted with an identity range check constraints in database
db...
Der Hintergrund ist mir klar. Gibt es trotzdem eine Möglichkeit, das Einfügen der Daten, und sei es auf dem Server, mit den Original-ID zu erzwingen. Problem ist, dass andere Daten, die auf die Original-ID Bezug nehmen, repliziert wurden. Es wäre ein ziemlicher Aufwand, alle ID's incl. Beziehungen, zu korrigieren. Bin dankbar für jede Hilfe
Viele Grüße
Gerd