Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Importação de CSV no SQL Server 2008


Você pode usar um arquivo de formato não-xml para especificar um delimitador diferente por coluna. Para valores entre aspas duplas e delimitados por tabulações, o delimitador pode ser \",\" . Você teria que adicionar uma coluna inicial não utilizada para capturar a primeira cotação. Por exemplo, para ler este arquivo:
"row1col1","row1col2","row1col3"
"row2col1","row2col2","row2col3"
"row3col1","row3col2","row3col3"

Você pode usar este arquivo de 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   ""

(O número na primeira linha depende da versão do SQL Server. O número na segunda linha é o número de colunas a serem lidas. Não se esqueça de ajustá-lo .)

A bulk insert comando aceita um formatfile = 'format_file_path' parâmetro onde você pode especificar o arquivo de formato. Por exemplo:
BULK INSERT YourTable
FROM 'c:\test\test.csv'
WITH (FORMATFILE = 'c:\test\test.cfmt')

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