Gilt es Daten aus anderen Quellen in eine SQL-Datenbank zu übernehmen, so ist das CSV-Format häufig der kleinste gemeinsame Nenner. Der Microsoft SQL-Server bietet seit der Version 2008 bereits die Möglichkeit über einen BULK-INSERT Daten aus CSV-Dateien zu lesen.
BULK INSERT Adressen FROM 'C:\Daten\AdressenExport.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', ERRORFILE = 'C:\Daten\AdressenImportFehler.csv', TABLOCK )
Bei diesem Vorgehen ist es wichtig, dass die Anzahl und Reihenfolge der Spalten in der Datenbank der Reihenfolge der Spalten in der CSV-Datei entspricht.
Erklärung der Parameter:
FIRSTROW
- Ab dieser Zeile beginnen die Datensätze. Es wird bei 1 begonnen zu zählen, wenn also die CSV-Datei die Überschriften der Spaltenköpfe beinhaltet, ist hier 2 anzugeben.
FIELDTERMINATOR
- Hier ist das Trennzeichen zwischen den einzelnen Spalten in einfachen Hochkommas anzugeben, für gewöhnlich ‚;‘ oder ‚,‘.
ROWTERMINATOR
- Mit dieser Angabe wird das Zeichen angegeben, dass einen Zeilenwechsel und somit einen neuen Datensatz einleitet. Auch Kombinationen wie ‚\n\r‘ sind möglich.
ERRORFILE
- Mit diesen optionalen Parameter kann eine Datei angegeben werden, in der jene Datensätze gespeichert werden, die z.B. aufgrund der Überschreitung der Feldlänge oder der Auslassung eines Pflichtfeldes in der Datenbanktabelle nicht importiert werden können.
TABLOCK
- Sperrt die Tabelle während des Imports, was vor allem Performancevorteile mit sich bringen kann.