Tsql 大容量插入空列UCS-2 Little-Endian

Tsql 大容量插入空列UCS-2 Little-Endian,tsql,sql-server-2008-r2,bulkinsert,Tsql,Sql Server 2008 R2,Bulkinsert,我有一个制表符分隔的文件要使用大容量插入命令导入。 我有一个格式文件如下 8.0 9 1 SQLCHAR 0 50 "\t" 1 Field1 "SQL_Latin1_General_CP1_CI_AS" 2 SQLCHAR 0 50 "\t" 2 Field2

我有一个制表符分隔的文件要使用大容量插入命令导入。 我有一个格式文件如下

8.0
9
1       SQLCHAR       0       50      "\t"                          1     Field1             "SQL_Latin1_General_CP1_CI_AS"
2       SQLCHAR       0       50      "\t"                          2     Field2             "SQL_Latin1_General_CP1_CI_AS"
3       SQLCHAR       0       50      "\t"                          3     Field3             "SQL_Latin1_General_CP1_CI_AS"
4       SQLCHAR       0       50      "\t"                          4     Field4             "SQL_Latin1_General_CP1_CI_AS"
5       SQLCHAR       0       50      "\t"                          5     Field5             "SQL_Latin1_General_CP1_CI_AS"
6       SQLCHAR       0       50      "\t"                          6     Field6             "SQL_Latin1_General_CP1_CI_AS"
7       SQLCHAR       0       50      "\t"                          7     Field7             "SQL_Latin1_General_CP1_CI_AS"
8       SQLCHAR       0       50      "\t"                          8     Field8             "SQL_Latin1_General_CP1_CI_AS"
9       SQLCHAR       0       0       "\r\n"                        9     Field9              "SQL_Latin1_General_CP1_CI_AS"
这适用于ANSI文件,但是我收到的文件是UCS-2 Little-Endian编码

我的尝试是对格式文件进行以下修改。这会停止任何错误,但我得到了正确的行数和所有空列。如果可能的话,我希望避免转换文件

8.0
9
1       SQLCHAR       0       50      "\t\0"                          1     Field1             "SQL_Latin1_General_CP1_CI_AS"
2       SQLCHAR       0       50      "\t\0"                          2     Field2             "SQL_Latin1_General_CP1_CI_AS"
3       SQLCHAR       0       50      "\t\0"                          3     Field3             "SQL_Latin1_General_CP1_CI_AS"
4       SQLCHAR       0       50      "\t\0"                          4     Field4             "SQL_Latin1_General_CP1_CI_AS"
5       SQLCHAR       0       50      "\t\0"                          5     Field5             "SQL_Latin1_General_CP1_CI_AS"
6       SQLCHAR       0       50      "\t\0"                          6     Field6             "SQL_Latin1_General_CP1_CI_AS"
7       SQLCHAR       0       50      "\t\0"                          7     Field7             "SQL_Latin1_General_CP1_CI_AS"
8       SQLCHAR       0       50      "\t\0"                          8     Field8             "SQL_Latin1_General_CP1_CI_AS"
9       SQLCHAR       0       0       "\r\0\n\0"                      9     Field9               "SQL_Latin1_General_CP1_CI_AS"

您的
批量插入
语句是什么样子的?您可能需要添加
数据文件类型

 BULK INSERT {TableName}
 FROM '{FilePath}'
 WITH (DATAFILETYPE = 'widechar', FORMATFILE = '{FormatFilePath}')

您的
批量插入
语句是什么样子的?您可能需要添加
数据文件类型

 BULK INSERT {TableName}
 FROM '{FilePath}'
 WITH (DATAFILETYPE = 'widechar', FORMATFILE = '{FormatFilePath}')

您就快到了,只要将SQLCHAR更改为SQLNCHAR即可。您就快到了,只要将SQLCHAR更改为SQLNCHAR即可。您的问题帮助我获得了另一个类似问题的答案,谢谢

“\t\0”是金色的!!!(愚蠢的UNICODE:)


(我已经有了SQLNCHAR SQLNVARCHAR部分:)

您的问题帮助我得到了另一个类似问题的答案,谢谢

“\t\0”是金色的!!!(愚蠢的UNICODE:)

(我已经有了SQLNCHAR SQLNVARCHAR部分:))