Datenabgleich aber ohne Dubletten

donaldax

Neuer Benutzer
Beiträge
3
Hallo Zusammen,

ich möchte mich zuerst vorstellen, bin neu Hier. Mein Name is Andrea und beiße mir derzeit die Zähne an einer Aufgabe aus.

Ich habe auf einer SQL Instanz 2 Datenbanken unterschiedlicher Programme. Das eine Programm ist eine Warenwirtschaft, das andere ist eine Adress-Datenbank. Nun möchte ich erreichen, daß neue Adressen, welche in der Warenwirtschaft eingegeben wurden, sich per Trigger automatisch mit der Datenbank der Adressen-DB abgleichen. Habe es schon geschafft daß per manuelle Ausführung die Adressen übertragen werden, jedoch würde ich mir auf diesem Wege unendlich viele Dubletten anlegen.

Wie kann es also erreicht werden, daß eine neu aufgenommene Adresse als "Neu" erkannt wird und auch nur diese dann den bereits bestehenden Adressen hinzugefügt wird? In der Warenwirtschaft ist die Ansicht starr, kann dort kein neues Feld mit beispielsweise "neu" erstellen um dem Abgleich per Bedingung eben begreiflich zu machen daß nur Adresse mit dem Haken "neu" übertragen werdne sollem.

Bedanke mich sehr für die Unterstützung,

viele Grüße Andrea
 
Werbung:
sind denn die Tabellen in der Struktur her gleich? Warum überhaupt 2 Tabellen? Kannst Du auf der einen Seite nicht die andere Tabelle als Foreign Table einbinden? (ich weiß nicht, was M$SQL da bietet, aber da ist bestimmt ein Weg). Haben beide Tabellen den gleichen PK, eine Kundennummer oder so?
 
Hallo,

vielen dank für deine Antwort. Und das hat mich auf eine Idee gebracht. Beide Datenbanken haben ein gemeinsames Feld, nämlich Kundennummer. Es müsste doch mögliuch sein einen Trigger beizubringen, daß er anhander der Kundennummer immer einen Wert hochzählt und somit nur die Adressen übertzrägt, welche neue Kundennummern bekommen haben...
 
ich dachte es mir so...Ich lege in der Warenwirtschaft eine Adresse an, diese bekommt die Kundenummer 1. Nun wird die Adresse mit dieser Kundennumemr in die Adressdatenbank übertragen. Jetzt kommt eine neue Adresse in die Warenwirtschaft, dieser erhält die Kundennummer 2. Meine Vorstellung nun ist, daß der Trigger prüft was an Kundennummer schon da ist und zählt zu der letzten Nummer 1 dazu. Somit wird nur diese eine Adresse übertragen und nicht die bereits mit der Kundennmmer 1 angelegte Adresse...Oder liege ich hier völlig daneben ? :)
 
der TRIGGER braucht ja nur per Row zu feuern - beim Insert/Update, und dann kümmert er sich nur um diese eine Row. Oder war das M$SQL, was keine per-row-trigger hat? Ich weiß es nicht...
 
Werbung:
Nein MSSQL hat keine per-row-trigger aber es geht natürlich. Das mit dem Hochzählen ist unnötig, der Trigger guckt in die Zieltabelle ob die eingefügten Kundennummern schon existieren. Wenn nicht, legt er sie an.

Kannst du mal die Tabellendefinition beider Tabellen zeigen?

Liegen beide Tabellen auf dem selben DB Server? Sonst musst du noch einen Verbindungsserver anlegen und eventuell brauchen die User die den Trigger auslösen entsprechende Schreibrechte, das müsste man testen.
 
Zurück
Oben