Spalten synchronisieren

16/07/2009 - 15:54 von Fred Aurich | Report spam
Hallo,

heute habe ich noch mal ein grundsàtzliches Problem. Wie kann ich im SSIS
(oder auch per SQL) Tabellen von zwei unterschiedlichen SQL-Servern
synchronisieren?

Ich möchte den Inhalt einer S p a l t e einer Tabelle A auf Server A auf
eine (leere) Spalte von Tabelle B auf Server B, über einen Schlüßel
synchronisiert, kopieren. Beide Tabellen habe ein gemeinsames Schlüßelfeld.

So etwas gibt es doch nicht?? ->

update TabA SET A.FeldA = B.FeldB
FROM ServerA.TabA A
INNER JOIN ServerB.TabB B ON (A.Schluessel = B.Schluessel)

Mit dem Suchen-Objekt im SSIS habe ich keine Lösung hinbekommen.

Fred.

PS. Die gesamte Tabelle B von ServerB zu ServerA kopieren und dann updaten
mal abgesehen.
 

Lesen sie die antworten

#1 Gerald Aichholzer
16/07/2009 - 16:59 | Warnen spam
Hallo Fred,

Fred Aurich wrote:
heute habe ich noch mal ein grundsàtzliches Problem. Wie kann ich im SSIS
(oder auch per SQL) Tabellen von zwei unterschiedlichen SQL-Servern
synchronisieren?

Ich möchte den Inhalt einer S p a l t e einer Tabelle A auf Server A auf
eine (leere) Spalte von Tabelle B auf Server B, über einen Schlüßel
synchronisiert, kopieren. Beide Tabellen habe ein gemeinsames Schlüßelfeld.

So etwas gibt es doch nicht?? ->

update TabA SET A.FeldA = B.FeldB
FROM ServerA.TabA A
INNER JOIN ServerB.TabB B ON (A.Schluessel = B.Schluessel)

Mit dem Suchen-Objekt im SSIS habe ich keine Lösung hinbekommen.

PS. Die gesamte Tabelle B von ServerB zu ServerA kopieren und dann updaten
mal abgesehen.



In SSIS 2005 kannst du z.B. mit der langsam verànderlichen
Dimension (SCD, slowly changing dimension) im Datenfluss
arbeiten. Allerdings wird diese Komponente bei vielen Daten-
sàtzen ziemlich langsam (möglicherweise gibt es in den SSIS
2008 Verbesserungen).

Eine andere Möglichkeit ist das Verwenden des OLE-DB-Befehls
im Datenfluss. Aber auch dann musst du pro Datensatz ein
UPDATE abschicken (auch nicht optimal).

Wenn du einen Linked Server einrichten kannst, dann kannst
du in der Ablaufsteuerung auch mit einem 'SQL ausführen'-
Task das von dir vorgeschlagene SQL Statement absetzen.

lg,
Gerald

Ähnliche fragen