- Beiträge: 3
Export/Import in mehrere Tabellen SQL-Server
- Brenz, Michael
- Autor
- Offline
- Benutzer
Weniger
Mehr
9 Jahre 10 Monate her #1808
von Brenz, Michael
Export/Import in mehrere Tabellen SQL-Server wurde erstellt von Brenz, Michael
Hallo Support...
Ich arbeite mit einer SQL-Server-DB, die mehrere Tabellen enthält. Die Haupttabelle umfasst Personen mit Name, Geschlecht, Geb-Datum etc. in weiteren Tabellenspalten sind wiederum ID´s hinterlegt, die in weitere Tabellen verweisen, z.b. Tabelle Wohnort, Tabelle Verein, etc. Nun würde ich mir gerne einen Export schreiben, der als Ergebnis eine CSV-Datei oder auch Excel-Datei zur Folge hat, wo alle Daten im Klartext drin stehen. z.b. Name, Geschlecht, Wohnort, Verein etc.
Im Umkehrschluß benötige ich einen zweiten Adapter, der umgekehrt funktioniert, um so in einem Import, csv-Daten, die aus einer Online-Anmeldung stammen wiederum in mehrere Tabellen zu verteilen...
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Gerne liefere ich bei bedarf auch ein paar Screenshots...
mfg Micha Brenz
Ich arbeite mit einer SQL-Server-DB, die mehrere Tabellen enthält. Die Haupttabelle umfasst Personen mit Name, Geschlecht, Geb-Datum etc. in weiteren Tabellenspalten sind wiederum ID´s hinterlegt, die in weitere Tabellen verweisen, z.b. Tabelle Wohnort, Tabelle Verein, etc. Nun würde ich mir gerne einen Export schreiben, der als Ergebnis eine CSV-Datei oder auch Excel-Datei zur Folge hat, wo alle Daten im Klartext drin stehen. z.b. Name, Geschlecht, Wohnort, Verein etc.
Im Umkehrschluß benötige ich einen zweiten Adapter, der umgekehrt funktioniert, um so in einem Import, csv-Daten, die aus einer Online-Anmeldung stammen wiederum in mehrere Tabellen zu verteilen...
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Gerne liefere ich bei bedarf auch ein paar Screenshots...
mfg Micha Brenz
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
9 Jahre 10 Monate her - 9 Jahre 10 Monate her #1809
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Export/Import in mehrere Tabellen SQL-Server
Hallo Herr Brenz,
der Export von mehreren SQL Server Tabellen in eine CSV Textdatei ist relativ einfach. Hierzu müssen Sie lediglich das SQL SELECT Statement auf der READ Seite anpassen und die weiteren Tabellen über einen JOIN miteinander verknüpfen.
Beispiel SQL Select Statement
select p .name, p .gebdat, w.wohnort, v.verein
from t_person as p
inner join t_wohnort as w on p.wohnortid = w.id
inner join t_verein as v on p.vereinid = v.id
‚ evtl. weitere SQL Server Tabellen
order by p.name
So verknüpft der SQL Server die Tabellen miteinander und liefert die richtige Ergebnismenge zurück.
Der Import ist deutlich komplizierter es gibt hierzu mehrere Möglichkeiten. Am einfachsten geht es über mehrere Definitionen die nacheinander ausgeführt werden.
Sie benötigen für jede SQL Server ID Tabelle eine separate Import Definition.
z.B.
Wenn Sie in diesen Import Definitionen die Option „Daten anfügen (Insert)“ sowie „Vorhandene Datensätze ignorieren“ aktivieren und dann noch den Ausgelesenen Primary Key von der AutoWert (ID Spalte) auf z.B. den Wohnort oder Vereinsnamen legen, prüft der FlowHeater automatisch anhand dieses Wertes ob ein passender Datensatz bereits existiert und fügt nur einen neuen Datensatz an wenn der Wert noch nicht vorhanden ist. Weitere Informationen dazu finden Sie hier: Import CSV Textfile zu MSSQL vorhandene Datensätze überspringen
Zum Schluss benötigen Sie noch Ihre eigentliche CSV Datenimport Definition. Um die ID Werte zu holen benötigen Sie für jede ID Spalte (Wohnort, Verein, …) einen SQL Heater über den Sie einen Daten Lookup abbilden.
Beispiel ID Lookup SQL Statement
select id from t_verein where verein = ‚$VEREIN_AUS_CSV$‘
der Parameter „$VEREIN_AUS_CSV$“ muss dazu vorher mittels des Set Parameter Heaters gesetzt werden. Im Anhang finden Sie ein Beispiel dazu inkl. einer Access Datenbank .
Hinweis: Die einzelnen Daten Import Definitionen können mittels des Batch Moduls und eines kleines CMD Skripts automatisiert hintereinander ausgeführt werden.
Beispiel Batch CMD Skript
@echo off
FHBatch.exe CSV-Abgleich-Wohnorte.fhd
FHBatch.exe CSV-Abgleich-Vereine.fhd
FHBatch.exe CSV-Import-Personen.fhd
Ein genaueres Beispiel finden Sie hier: Automatisierter Batch CSV Import mit MS Access
der Export von mehreren SQL Server Tabellen in eine CSV Textdatei ist relativ einfach. Hierzu müssen Sie lediglich das SQL SELECT Statement auf der READ Seite anpassen und die weiteren Tabellen über einen JOIN miteinander verknüpfen.
Beispiel SQL Select Statement
select p .name, p .gebdat, w.wohnort, v.verein
from t_person as p
inner join t_wohnort as w on p.wohnortid = w.id
inner join t_verein as v on p.vereinid = v.id
‚ evtl. weitere SQL Server Tabellen
order by p.name
So verknüpft der SQL Server die Tabellen miteinander und liefert die richtige Ergebnismenge zurück.
Der Import ist deutlich komplizierter es gibt hierzu mehrere Möglichkeiten. Am einfachsten geht es über mehrere Definitionen die nacheinander ausgeführt werden.
Sie benötigen für jede SQL Server ID Tabelle eine separate Import Definition.
z.B.
- eine Import Definition die über die CSV Datei geht und lediglich nicht vorhandene Wohnorte in der Tabelle Wohnorte einfügt.
- eine Import Definition die über die CSV Datei geht und lediglich nicht vorhandene Vereine in der Tabelle Vereine anfügt.
- evtl. weitere Import Definitionen für weitere SQL Server ID Tabellen.
Wenn Sie in diesen Import Definitionen die Option „Daten anfügen (Insert)“ sowie „Vorhandene Datensätze ignorieren“ aktivieren und dann noch den Ausgelesenen Primary Key von der AutoWert (ID Spalte) auf z.B. den Wohnort oder Vereinsnamen legen, prüft der FlowHeater automatisch anhand dieses Wertes ob ein passender Datensatz bereits existiert und fügt nur einen neuen Datensatz an wenn der Wert noch nicht vorhanden ist. Weitere Informationen dazu finden Sie hier: Import CSV Textfile zu MSSQL vorhandene Datensätze überspringen
Zum Schluss benötigen Sie noch Ihre eigentliche CSV Datenimport Definition. Um die ID Werte zu holen benötigen Sie für jede ID Spalte (Wohnort, Verein, …) einen SQL Heater über den Sie einen Daten Lookup abbilden.
Beispiel ID Lookup SQL Statement
select id from t_verein where verein = ‚$VEREIN_AUS_CSV$‘
der Parameter „$VEREIN_AUS_CSV$“ muss dazu vorher mittels des Set Parameter Heaters gesetzt werden. Im Anhang finden Sie ein Beispiel dazu inkl. einer Access Datenbank .
Hinweis: Die einzelnen Daten Import Definitionen können mittels des Batch Moduls und eines kleines CMD Skripts automatisiert hintereinander ausgeführt werden.
Beispiel Batch CMD Skript
@echo off
FHBatch.exe CSV-Abgleich-Wohnorte.fhd
FHBatch.exe CSV-Abgleich-Vereine.fhd
FHBatch.exe CSV-Import-Personen.fhd
Ein genaueres Beispiel finden Sie hier: Automatisierter Batch CSV Import mit MS Access
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 9 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.275 Sekunden