Ich verwende einen Masseneinfügebefehl für SQL Server, aber aus irgendeinem Grund wird die erste Zeile nicht eingefügt. Warum kann ich keine Daten aus der ersten Zeile einfügen? Ist Bulk-Insert erwartet Header als Standard und wie kann ich das umgehen? Wenn ich eine Dummy-Zeile hinzufüge und WITH
auf FIRSTROW = 2
setze, dann wird die erste Zeile ohne ein Problem eingefügt, aber ich denke nicht, dass dies eine nette Lösung ist.Bulk insert SQL-Befehl kann die erste Zeile nicht einfügen
Fehlercode:
Msg 4864, Ebene 16, Status 1, Zeile 1
Schüttlastdaten-Umwandlungsfehler (Typ Mismatch oder ungültiges Zeichen für die angegebene Codepage) für Reihe 1, Spalte 1 (table_id).
Befehl:
BULK INSERT TableData
FROM 'C:\Users\Oscar\file.csv'
WITH (FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n',
KEEPNULLS,
KEEPIDENTITY)
Beispieldaten:
1;Text 1;1;0;;
2;Text 2;1;0;;
3;Text 3;1;0;;
4;Text 4;1;0;;
5;Text 5;1;0;;
Haben Sie versucht, einen 'ROWTERMINATOR' von \ r \ n zu verwenden? Es ist möglich, dass Sie, wenn Sie Ihre Datei in dem von Ihnen verwendeten Editor öffnen und dann speichern, dass sie automatisch von einem Zeilenabschluss in den anderen konvertiert und dieses Problem behebt, während der Header nichts damit zu tun hat. Nur eine Vermutung, aber etwas, was ich schon mal gesehen habe. –
@TomH Ich hatte das gleiche Problem. Ich finde mit etwas wie Notepad ++ und zeigen alle Zeichen machen Importe so wie viel einfacher, wie Sie die Registerkarten, Zeilenumbrüche, Zeilenumbrüche, etc. – UnhandledExcepSean
@TomH '\ r \ n' hat nicht funktioniert, es war ein Kodierungsfehler. Von UTF-8-BOM zu ANSI geändert und \ n funktionierte. – Ogglas