2016-04-21 6 views
2

So die Situation gibt es zwei Server pub_server (Herausgeber) und sub_server (Abonnent). Es gibt zwei Datenbanken auf pub_server: db1 und db2.Replikationsproblem mit berechneten Spalten

Es existiert eine Tabelle xyz_tbl in db1, die repliziert (transaktional) zu sub_server (Herausgebername: publisher_old). Meine Aufgabe besteht darin, das Abonnement und den Artikel von publisher_old zu löschen und einen neuen Herausgeber publisher_new bei db2 mit demselben Artikel xyz_tbl und demselben Abonnenten sub_server zu erstellen.

Jetzt ist hier das Problem: xyz_tbl hat eine berechnete Spalte. Als ich das Skript für publisher_new ausgeführt habe, erhalte ich einen Fehler im Replikationsmonitor.

Fehler: The column "column_name" cannot be modified because it is either a computed column or is the result of a UNION operator

Ich verwende @sync_type="replication support only" seit Tabelle bereits an Teilnehmer vorhanden ist (von publisher_old). Dann, warum Verteiler versuchen, Einfügung auf Teilnehmer durchzuführen, der oben genannten Fehler erzeugt.

Wenn bei allen Distributor Insertion versucht, dann wie funktioniert die Replikation von db1, d. H. publisher_old.

Wie mit berechneten Spalten in Replikation umzugehen. Ich konnte keine Antwort finden.

Bitte helfen!

Antwort

1

Die meisten Arbeiten sind nicht für berechnete Spalten verfügbar. Dies wird aktualisiert. Ich empfehle, die berechnete Spalte nicht zu replizieren. Sie können es erneut in Ihrer Replikationsdatenbank berechnen.

Andere Möglichkeit ist, berechnete Spalte eine tatsächliche Spalte zu machen und dann zu replizieren.

Wenn Sie in die berechnete Spalte einfügen möchten, können Sie eine ähnliche Eigenschaft wie PersistantReadOnly angeben.