Laden...

Bulk Insert für Csv-Datei - Identity hinzufügen

Erstellt von alecE vor 12 Jahren Letzter Beitrag vor 12 Jahren 816 Views
alecE Themenstarter:in
30 Beiträge seit 2010
vor 12 Jahren
Bulk Insert für Csv-Datei - Identity hinzufügen

verwendetes Datenbanksystem: MSSQL 2008 R2

Hallo!

Ich habe eine CSV Datei:
Jim;Knopf
Tim;Tester
Chem;Checker

Diese Namen möchte ich nun in die Tabelle Person importieren:


CREATE TABLE Person 
(
	Id int IDENTITY(1,1) NOT NULL
	,FirstName VARCHAR(50)
	,LastName VARCHAR(50)
)

Importieren möchte ich die datei via BULK INSERT:


BULK INSERT csv
FROM 'e:\data.csv'
WITH
(
	FORMATFILE = 'e:\data_format.xml'
)

Formatfile:


<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<RECORD>
		<FIELD ID="1" xsi:type="CharTerm" TERMINATOR=";"/>
		<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\n"/>
	</RECORD>
	<ROW>		
		<COLUMN SOURCE="1" NAME="FirstName" xsi:type="SQLVARYCHAR"/>
		<COLUMN SOURCE="2" NAME="LastName" xsi:type="SQLVARYCHAR"/>
	</ROW>
</BCPFORMAT>

Problem ist nun das ich folgendes Ergebnis erhalte:


Id	FirstName	LastName
18	Knopf	NULL
19	Tester	NULL
20	Checker	NULL

Der Nachname landet in der Vorname Spalte und der Namchname wird nicht importiert. Meine erster Gedanke war, das ich ein <COLUMN>-Element definieren müsste, welches keine <FIELD>-Zuordnung hat, da das ganzte ja verschoben scheint. Das ist allerdings nicht möglich.

Was habe ich falsch gemacht?
Ist das so wie ich mir das wünsche überhaupt anhand deises Weges möglicht?

:::

System: Win7 x64 | INTEL Core i7 2.8Ghz | 4 GB RAM

G
538 Beiträge seit 2008
vor 12 Jahren

Ich hab noch nie damit gearbeitet, aber bist du sicher, dass der "Terminator" für Feld 2 stimmt?
Vielleicht kannst du auch sowas wie source=NULL für die ID Spalte angeben?

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

502 Beiträge seit 2004
vor 12 Jahren

Hab's schon ewig nicht mehr benutzt, aber gibt's für das Erstellen der Format-Datei nicht ein Tool? BCP oder so?

Bart Simpson

Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.

Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...