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

时间:2014-10-31 11:40:36

标签: mysql sql-server sql-server-migration-assi

我使用SSMA for MySQL从MySQL迁移到MSSQL,在几个表上我得到了22018错误。经过大量的捣乱后,我发现由于俄语字符存储在这些表格中而产生错误。

例如:Бухгалтерский учет

表格中还有其他非英文字符,例如Profissão Jurídica,并且它们正常运行。

错误与排序规则有关,MySQL表上的排序规则为latin1_swedish_ci,并且包含"外来"的列。字符上有utf8_unicode_ci个排序规则,且为varchar(255)

MSSQL中的收件人表使用数据库默认排序规则(Latin1_General_CI_AS),收件人列为nvarchar(255)

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

我找到的唯一接近答案的是this posting。除非我忽略了答案的要点,否则我无法看到转换缺失 - 或者是否存在?

2 个答案:

答案 0 :(得分:30)

在花了几个小时试图找出它为什么不起作用之后我找到了解决方案,当我开始放弃并在Access中使用链接表时,传递给MSSQL的传递查询。

我使用的是错误的ODBC驱动程序。事实证明,有2个MySQL ODBC驱动程序安装了ANSIUnicode驱动程序。我正在使用ANSI。当我把它换成Unicode时一切都很好!

Unicode ODBC driver

答案 1 :(得分:1)

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

我将MYSQL ODBC从5.3降级到5.1,它确实有效。

MYSQL ODBC 5.1~链接 https://dev.mysql.com/downloads/file/?id=415029

enter image description here