Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Datenabgleich aber ohne Dubletten

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von donaldax, 18 Mai 2016.

  1. donaldax

    donaldax Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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?
     
  3. donaldax

    donaldax Neuer Benutzer

    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...
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Was willst du denn hochzählen? Und warum? Ist die Kundennummer in beiden der PK und gleich?
     
  5. donaldax

    donaldax Neuer Benutzer

    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 ? :)
     
  6. akretschmer

    akretschmer Datenbank-Guru

    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...
     
  7. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden