Ich versuche BULK INSERT
zu verwenden, um Zeilen zu einer vorhandenen Tabelle aus einer CSV-Datei hinzuzufügen. Denn jetzt habe ich eine kleine Datei zu Testzwecken mit der folgenden Formatierung:BULK INSERT nicht korrekt aus CSV einfügen
UserID,Username,Firstname,Middlename,Lastname,City,Email,JobTitle,Company,Manager,StartDate,EndDate
273,abc,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
274,dfg,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
275,hij,dd,dd,dd,dd,dd,dd,dd,dd,dd,dd
Und das ist, was meine Abfrage sieht derzeit wie:
BULK INSERT DB_NAME.dbo.Users
FROM 'C:\data.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Wenn ich diese Abfrage ausführen, es gibt 1 Zeile betroffen. Ich habe den Eintrag in der Tabelle überprüft und festgestellt, dass die Daten in der Datei in der Tabelle als einzelne Zeile eingefügt werden.
Was könnte das verursachen? Ich versuche, diese Zeilen in einzelne Zeilen in der Tabelle einzufügen. Siehe (lang) Bild unten
Die erste Spalte tatsächlich eine Identity-Spalte ist so in der Datei ich eine ganze Zahl nur angegeben, obwohl sie überschrieben werden durch die Auto-ID erzeugt, wie ich bin nicht sicher, wie die Abfrage sagen noch aus dem zweiten Feld einfügen.
Es gibt mehr Spalten in der tatsächlichen Tabelle als in der Datei angegeben, da nicht alles gefüllt werden muss. Könnte das das verursachen?
Überprüfen Sie in Ihrem bevorzugten Texteditor, was alle Symbole sind. ZB in Notepad ++ aktivieren Sie "Alle Symbole anzeigen". Vielleicht enden Ihre Zeilen mit '\ r' anstatt' \ r \ n'. –
Zum Testen könnten Sie eine temporäre Tabelle ohne das Identity-Feld erstellen und die WITH-Anweisung entfernen, um zu sehen, welche Daten zurückgegeben werden? –
Je nach Zeichencodierung werden neue Zeilenzeichen unterschiedlich markiert. Hast du es mit '/ r/n' versucht? – Fka