Einzelnen Beitrag anzeigen

norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
505 Beiträge
 
Delphi 12 Athens
 
#1

Einfügen einer ID Spalte trotz identity erzwingen

  Alt 22. Dez 2013, 03:32
Datenbank: MsSQL • Version: 2008 • Zugriff über: SQL
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
  Mit Zitat antworten Zitat