MSSQL Bulk File Importer für Text Files

Mit diesem praktischen Consolen Tool können Sie rasch und unkompliziert grosse Datenmengen aus CSV Dateien in eine MS SQL Server Datenbank laden. Es ist gedacht, um Staging Datenbanken zu befüllen und ist nicht für kumulativen Daten-Import geeignet. 

Beim Import einer Datei wird die Ziel-Tabelle gelöscht und neu erstellt. Das Source-File wird vor dem Import analysiert und ein passender Daten Typ wird zur Erstellung der Ziel Tabelle verwendet. Auch die Spalten Namen werden 1:1 nach der Header Definition in der CSV Datei benannt. Text Dateien ohne Header Definition können mit diesem Tool nicht geladen werden. Aber dies ist auch schon die einzige Einschränkung.

Die umfangreichen Konfigurations Optionen machen den Bulk Importer zu einem praktischen Tool. Die hier aufgeführte Liste an Parametern wird jeweils mit einem Beispiel dokumentiert.

Anwendung:         
SqlFileImporter {Parameter}

Beispiel:
SqlFileImporter  -s="X:\Staging Files" -t="Server=Localhost\SqlExpress..." -f=*.csv -d=, -l=X:\Logs\ImportLog_20230510.txt --tran

Parameter Deklaration Beispiel
Connection String* -t, --target={Connection String} -t="Server=Localhost\SqlExpress;Initial Catalog=StageDatabase;Integrated Security=true;"
Verzeichnis Pfad* -s, --source={Verzeichnis oder Datei-Pfad} Verzeichnis: -s="C:\Stage Files\Today"
Datei:            -s="C:\Stage Files\Today\generic_20230523.csv"

Wichtig: ​Bitte verwenden Sie keine abschließenden Schrägstriche!

-s="C:\Stage Files\Today\" funktioniert nicht
Suchfilter** -f, --find={Suchpfad} -f=*.csv
--find=*.txt
--find=stage*.stg
Trennzeichen* -d, --delimiter={Zeichen} -d=, oder -d=","
--delimiter=; oder --delimiter=";"
Schema Name --sc, --schema={Datenbank Schema} --sc="dbo" 
--schema="stage"
Tabellen Prefix --pr, --prefix={Name} --pr="stg_"
--prefix="stage_"
Tabellen Suffix --su, --suffix={Name} --su="_001"
--suffix="_001"
Logfile Datei -l, --log={Datei Pfad} -l="C:\Logs\Stage Log\BulkImport_20230528.txt"
-log="C:\Logs\Stage Log\BulkImport_20230528.txt"
Transaktion --tran, --transaction Wenn diese Option angegeben wird, erstellt der Import Prozess eine Transaktion. Bricht aus irgend einem Grund der Import ab, wird die Transaktion zurückgesetzt und verhindert so, dass die Daten unvollständig geladen werden. Die Tabelle wird zwar gelöscht und neu erstellt, aber es befinden sich nach einem Fehler keine Daten darin!
Silent 
--sil, --silent Wenn diese Option angegeben wird, erstellt das Programm keine Konsolen Meldungen. Es wird aber trotzdem ins Log File geschrieben. 
Hilfe -?, -h, --help Zeigt die Optionen, Bschreibung und Beispiele an.

* Muss definiert werden
** Muss nur definiert werden, wenn keine explizite Datei angegeben wird.