在 SQL Server 2014 中导入带格式文件的 UTF 8 文件?

Importing UTF8 Files with Formatfile in SQL Server 2014?

我想使用批量插入命令将文本文件导入 SQL Server 2014。我使用格式化文件来跳过不需要的列。 所以这工作正常,除了 UTF8 文件。某些特殊字符(ä、ö、ü、...)未正确导入。

this 文章中的解决方案有效,但只能在不使用格式文件的情况下使用。我还尝试将 Formatfile 中的数据类型更改为 "SQLNCHAR",这会导致此错误:

Msg 4863, Level 16, State 1, Line 3
Bulk load data conversion error (truncation) for row 11, column 1 (col1).
Msg 7399, Level 16, State 1, Line 3
The OLE DB provider "BULK" for linked server "(null)" reported an error. The 
provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 3
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

那么UTF8-Codepage如何与格式文件结合使用呢?

感谢您的帮助!

我想通了...

由于UTF8编码,Collation/Encoding定义在批量插入语句中:

WITH (CODEPAGE = '65001', DATAFILETYPE = 'Char', ...)

在这种情况下,格式文件中的排序规则必须为空,类型必须为 "SQLCHAR"。例如,我的格式文件的第一行是这样的:

1   SQLNCHAR    0   50  |   1   column1 ""

希望它能帮助其他人避免数小时的搜索...