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