我需要将 MySQL 迁移到 Azure SQL 数据库。 MySQL 具有 utf8mb3_bin 排序规则。我一直在 Azure SQL 中寻找最合适的匹配。看来 Latin1_General_BIN2 非常适合。
这真的是最适合源排序规则的吗?还有其他建议吗?
非常感谢!
正如评论部分所讨论的,MySQL 排序规则
utf8mb3_bin
基于字符的字节表示执行二进制比较。在 Azure SQL 中,最接近的匹配是 Latin1_General_BIN2,因为它还基于 Unicode 代码点执行二进制比较,确保类似的排序和比较行为。
如果需要严格的逐字节等价进行排序和比较,Latin1_General_BIN2 是最佳选择。虽然 SQL_Latin1_General_CP1_CS_AS 可以作为特定于 Unicode 的用例的替代方案,但它使用语言规则而不是二进制比较,这可能会导致不同的行为。
对于大多数需要二进制兼容的迁移场景,建议使用Latin1_General_BIN2。
参考资料: