我正在使用 SSMA for MySQL 从 MySQL 迁移到 MSSQL,并且在几个表上我收到 22018 错误。经过大量的讨论后,我发现由于这些表中存储了俄语字符而产生了错误。
例如:Бухгалтерский учет
表格中还有其他非英文字符,例如Profissão Jurídica
and they are come through OK。
错误与排序规则有关,MySQL 表上的排序规则是latin1_swedish_ci
,包含“外来”字符的列上有utf8_unicode_ci
排序规则,并且是varchar(255)
.
MSSQL 中的收件人表使用数据库默认排序规则 ( Latin1_General_CI_AS
),收件人列是nvarchar(255)
.
在 SSMA 中,字符集映射设置为latin1
默认值CHAR/VARCHAR
,我尝试将其设置为NCHAR/NVARCHAR
但没有成功。所有实例的类型映射varchar
都设置为nvarchar
。
我找到的唯一接近答案的是这个帖子。除非我错过了答案的重点,否则我看不到缺少转换-或者是否存在?