Announcement

Collapse
No announcement yet.

SQL Replizierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Replizierung

    Hallo,
    sicherlich eine Anfängerfrage:
    Ich möchte Daten von einer Tabelle in die andere aktualisieren. Mein Problem dabei ist, daß es sowohl neue Datensätze gibt als auch geänderte , d.h. in der Zieltabelle bereits vorhandene. Alle Datenätze haben eindeutige ID's. "Früher" habe ich so etwas in einer Schleife gelöst a la
    <PRE>
    do while not eof
    if found(datensatz) in Ziel
    update
    else
    Append
    endif
    enddo
    </PRE>
    Wie macht man so etwas in SQL ?

  • #2
    Hallo,

    angenommen, eine Tabelle hat die Spalten ID (AutoInc) und Wert (VARCHAR). Mit einem INSERT INTO-Aufruf können die neuen Datensätze aus der Quelltabelle in die Zieltabelle kopiert werden:
    <pre>
    INSERT INTO Ziel (Wert)
    SELECT Wert FROM Quelle q
    WHERE q.ID NOT IN (SELECT ID FROM Ziel)
    </pre>
    Für das Übernehmen aller Änderungen an bereits in beiden Tabellen vorhandenen Datensätzen wird eine UPDATE-Anweisung benötigt:
    <pre>
    UPDATE Ziel z
    SET z.Wert = (SELECT q.Wert FROM Quelle q WHERE q.ID = z.ID)
    </pre>
    Diese UPDATE-Anweisung setzt den Wert der Spalte WERT in jedem Datensatz neu. Möchte man das vermeiden, wird ein Datums-Feld (oder sonstiges Kennzeichen) als zusätzliches WHERE-Kriterium benötigt.
    &#10

    Comment


    • #3
      Hallo <br>
      und wie formuliert man dies nun in <b>einer</b> SQL-Anweisung ??
      <br>
      Helmut Schumache

      Comment


      • #4
        Hallo,

        indem man eine Stored Procedure in der Datenbank anlegt, die vom Client über <b>einen</b> Aufruf ausgeführt wird

        Comment

        Working...
        X