Vous pouvez utiliser un fichier au format non XML
pour spécifier un délimiteur différent par colonne. Pour les valeurs entourées de guillemets doubles et délimitées par des tabulations, le délimiteur peut être \",\"
. Vous devrez ajouter une colonne initiale inutilisée pour capturer la première citation. Par exemple, pour lire ce fichier :
"row1col1","row1col2","row1col3"
"row2col1","row2col2","row2col3"
"row3col1","row3col2","row3col3"
Vous pouvez utiliser ce fichier de format :
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 ""
(Le nombre sur la première ligne dépend de la version de SQL Server. Le nombre sur la deuxième ligne est le nombre de colonnes à lire. N'oubliez pas de l'ajuster .)
L'bulk insert
la commande accepte un formatfile = 'format_file_path'
paramètre où vous pouvez spécifier le fichier de format. Par exemple :
BULK INSERT YourTable
FROM 'c:\test\test.csv'
WITH (FORMATFILE = 'c:\test\test.cfmt')
Cela se traduit par :
select * from YourTable
-->
col1 col2 col3
row1col1 row1col2 row1col3
row2col1 row2col2 row2col3
row3col1 row3col2 row3col3