Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

CSV-Import in SQL Server 2008

Sie könnten eine Datei im Nicht-XML-Format verwenden um ein anderes Trennzeichen pro Spalte anzugeben. Für Werte, die in doppelte Anführungszeichen eingeschlossen und durch Tabulatoren getrennt sind, könnte das Trennzeichen \",\" sein . Sie müssten eine erste unbenutzte Spalte hinzufügen, um das erste Zitat zu erfassen. Zum Beispiel, um diese Datei zu lesen:

"row1col1","row1col2","row1col3"
"row2col1","row2col2","row2col3"
"row3col1","row3col2","row3col3"

Sie könnten diese Formatdatei verwenden:

10.0
4
1  SQLCHAR 0 50 "\""     0 unused ""
2  SQLCHAR 0 50 "\",\""  1 col1   ""
3  SQLCHAR 0 50 "\",\""  2 col2   ""
4  SQLCHAR 0 50 "\"\r\n" 3 col3   ""

(Die Zahl in der ersten Zeile hängt von der SQL Server-Version ab. Die Zahl in der zweiten Zeile ist die Anzahl der zu lesenden Spalten. Vergessen Sie nicht, sie anzupassen .)

Die bulk insert Der Befehl akzeptiert ein formatfile = 'format_file_path' Parameter, in dem Sie die Formatdatei angeben können. Zum Beispiel:

BULK INSERT YourTable
FROM 'c:\test\test.csv'
WITH (FORMATFILE = 'c:\test\test.cfmt')

Daraus ergibt sich:

select * from YourTable
-->
col1        col2        col3
row1col1    row1col2    row1col3
row2col1    row2col2    row2col3
row3col1    row3col2    row3col3