SQL Server迁移助手(SSMA):错误[22018][MySQL][ODBC 5.3(a)驱动程序][mysqld-5.1.51-community]
我正在使用SSMA for MySQL从MySQL迁移到MSSQL,在几个表上我得到了22018错误。在做了大量的修改之后,我发现由于这些表中存储了俄语字符,所以产生了错误 例如: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中的收件人表使用数据库默认排序规则
表中还有其他非英语字符,例如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~链接