SQL Server迁移助手(SSMA):错误[22018][MySQL][ODBC 5.3(a)驱动程序][mysqld-5.1.51-community]

SQL Server迁移助手(SSMA):错误[22018][MySQL][ODBC 5.3(a)驱动程序][mysqld-5.1.51-community],mysql,sql-server,sql-server-migration-assi,Mysql,Sql Server,Sql Server Migration Assi,我正在使用SSMA for MySQL从MySQL迁移到MSSQL,在几个表上我得到了22018错误。在做了大量的修改之后,我发现由于这些表中存储了俄语字符,所以产生了错误 例如: 表中还有其他非英语字符,例如Profissão Jurídica,它们正在通过OK 错误与排序有关,MySQL表上的排序规则是latin1\u swedish\u ci,保存“外来”字符的列具有utf8\u unicode\u ci排序规则,并且是varchar(255) MSSQL中的收件人表使用数据库默认排序规则

我正在使用SSMA for MySQL从MySQL迁移到MSSQL,在几个表上我得到了22018错误。在做了大量的修改之后,我发现由于这些表中存储了俄语字符,所以产生了错误

例如:

表中还有其他非英语字符,例如
Profissão Jurídica
,它们正在通过OK

错误与排序有关,MySQL表上的排序规则是
latin1\u swedish\u ci
,保存“外来”字符的列具有
utf8\u unicode\u ci
排序规则,并且是
varchar(255)

MSSQL中的收件人表使用数据库默认排序规则(
Latin1\u General\u CI\u AS
),收件人列为
nvarchar(255)

在SSMA中,
latin1
的字符集映射被设置为默认值
CHAR/VARCHAR
,我尝试将此设置为
NCHAR/NVARCHAR
,但没有成功。对于所有实例,
varchar
的类型映射设置为
nvarchar


我找到的唯一接近答案的是。除非我错过了答案的要点,否则我看不出是否有丢失的转换-或者是否有?

在花了几个小时试图找出它不起作用的原因后,当我开始放弃并使用链接表访问MSSQL时,我找到了解决方案

我使用了错误的ODBC驱动程序。原来有两个MySQL ODBC驱动程序安装了
ANSI
Unicode
驱动程序。我使用的是
ANSI
。当我把它换成Unicode时,一切都很好


根据Microsoft SSMA帮助指南,SSMA仅与MySQL ODBC 5.1驱动程序兼容(受信任)

我将MYSQL ODBC从5.3降级到5.1,它成功了

MYSQL ODBC 5.1~链接