Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Importazione CSV in SQL Server 2008

Puoi utilizzare un file in formato non XML per specificare un delimitatore diverso per colonna. Per i valori racchiusi tra virgolette e delimitati da tabulazioni, il delimitatore potrebbe essere \",\" . Dovresti aggiungere una colonna iniziale non utilizzata per acquisire la prima citazione. Ad esempio, per leggere questo file:

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

Potresti usare questo file di formato:

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   ""

(Il numero sulla prima riga dipende dalla versione di SQL Server. Il numero sulla seconda riga è il numero di colonne da leggere. Non dimenticare di modificarlo .)

L'bulk insert il comando accetta un formatfile = 'format_file_path' parametro in cui è possibile specificare il file di formato. Ad esempio:

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

Ciò si traduce in:

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