使用批量插入

时间:2016-09-10 06:16:28

标签: sql-server csv utf-8 bulkinsert bcp

我正在尝试将.csv格式的原始数据导入到SQL Server中的表中。我的表名为[raw].[sub_brand_channel_mapping]

最后一列ImportFileId是由我的python代码生成的。我首先将该列的所有行设置为生成的默认值。然后我使用批量插入将utf-8格式的csv数据导入到SQL Server中的表中。但是,在此过程中,许多特殊字符正在发生变化。我正在使用像这样的格式文件

10.0
8
1      SQLCHAR            0       100      "\t"     1    sub_brand_id                          ""
2      SQLCHAR            0       1024     "\t"     2    sub_brand_name                      SQL_Latin1_General_CP1_CI_AS                      
3      SQLCHAR            0       100      "\t"     3    channel_country_id                    ""
4      SQLCHAR            0       1024     "\t"     4    channel_id                            ""
5      SQLCHAR            0       1024     "\t"     5    channel_name                          SQL_Latin1_General_CP1_CI_AS
6      SQLCHAR            0       256      "\t"     6    status                                ""
7      SQLCHAR            0       256      "\t"     7    eff_start_date                        ""
8      SQLCHAR            0       256      "\r\n"   8    eff_end_date                          ""

我的批量插入命令如下所示:

bcp "{table}" in "{file}" {connect_string} -f {format_file} -F {first_row} -    b 10000000 -e {error_file} -q -m {max_errors}

我的csv文件有" \ t"作为分隔符。我需要导入确切的名称而不做任何更改。我该怎么办?

P.S。我尝试将我的utf-8编码的csv转换为utf-16-le,然后使用" -w"在我的bcp命令中。它给出了很多错误。简而言之,它没有用。请告诉我如何做到这一点。

0 个答案:

没有答案