Daten übertragen von Tabelle zu Tabelle

PeterS

Aktiver Benutzer
Beiträge
27
Hallo miteinander,
ich habe in einer alten Tabelle aus einer alten Datenstruktur noch eine tb mit Veranstaltungsteilnehmern und -buchungen, welche ich in die jetzige tb-Tabelle importieren möchte und dabei bei einzelnen Felder etwas transformieren muß (Zeichenketten zusammenhängen etc.).

Erste Idee war: alles raus aus tbAlt nach Excel, dort umbauen und wieder rein nach tbNeu. --- Das muß doch aber auch per SQL gehen???

Wie gehe ich das Problem an?

Alte Felder in Variablen einlesen -- dann auf Basis der Variablen transformieren -- zuletzt Variableninhalte per Update in tbNeu?

Wie erreiche ich, dass das alles Set für Set abgearbeitet wird?

tbNeu nutzt verschiedene Relationen zu weiteren tb, die bei der Gelegenheit abgefragt und mit befüllt werden sollen (z.B. tbAlt.Veranstaltungsnummer verknüpft per tbVeranstaltungen.id mit der tbVeranstaltungen, wo es auch ein Feld tbVeranstaltungen.Veranstaltungsnummer gibt). An welcher Stelle sollte das passieren?

Peter S.
 
Werbung:
Moin moin,

pauschal lässt sich sagen das für sowas eigentlich "SSIS" das Zauberwort ist. Aber ohne deine Datenstruktur zu kennen und ohne Beispiel Daten vorher + nachher müsste ich in meine Glaskugel gucken, nur leider ist diese in der Werkstatt zur Durchsicht.

Viele Grüße
 
Du hast natürlich völlig Recht, ohne Details zu Datenstrukturen bleibt das ein einziges Stochern im Nebel. Bei SSIS bin ich mir nicht ganz sicher, ob Aufwand und Nutzen in sinnvollem Verhältnis stehen. Es geht um eine einmalige Übertragung inkl. Transformation aus der alten in die neue Tabelle. Danach wird die alte Struktur sowieso gelöscht.
Dank + Gruß
 
Einfach per INSERT ... Select vielleicht?
In der Select Klausel kannst dann ja alles mögliche umformen. Oder hab ich da zu einfach gedacht?
 
In die Richtung gehen auch meine Überlegungen, aber wie baue ich eine Schleife, die das Ganze Datensatzweise abarbeitet?
 
Im Prinzip ja.
Meine neue tb 'Veranstaltung-Teilnehmer' (die schon seit einem Jahr im Praxiseinsatz ist), speichert als einzelne Sets alle Geschäftsfälle, also alle gebuchten/vorgemerkten/abgesagten/stornierten/... Teilnahmen, deren Verursacher, deren Rechnungsempfänger etc. etc. Die Sache wurde nur früher anders gemacht, und ich möchte jetzt die alten Teilnahmebuchungen - soweit möglich und noch vorhanden - zusätzlich in diese neue Struktur übernehmen.
 
Werbung:
Also die Daten müssen natürlich passend für die neue Tabellenstruktur sein, dann kannst du sie in die neue Tabelle einfügen. Die "Konvertierung" sollte am besten nicht pro Datensatz sondern direkt im Select erfolgen, das hängt aber stark davon ab was du genau anpassen musst.

Mit Schleifen oder Datensatzweise würde ich nur im Notfall arbeiten. Eventuell helfen dir auch eher ein paar Hilfsspalten die du in der neuen Tabelle anlegst und in denen du Werte zwischenspeicherst.

Beispiel:
Code:
INSERT INTO tbl_neu(pk,wert1,wert2)
SELECT pk,wert1,wert2 FROM tbl_alt

Vielleicht kannst du mal Beispiele aus der Quell- und der Zieltabelle liefern. Das können auch mehrere Zieltabellen sein.

Wenn dann die Datensätze teilweise schon vorhanden sein sollten bietet sich eventuell MERGE an.
 
Zurück
Oben