BIN 和 BIN2 排序规则的使用准则

以下注意事项将帮助您决定是 BIN 还是 BIN2 二进制排序规则适合于 SQL Server 实现。

二进制排序规则基于区域设置和数据类型所定义的编码值的顺序,对数据进行排序。SQL Server 中的二进制排序规则强制使用二进制排序顺序,定义了要使用的区域设置和 ANSI 代码页。由于二进制排序规则相对简单,因此对改进应用程序的性能非常有用。对于非 Unicode 数据类型,数据比较将基于 ANSI 代码页中定义的码位。对于 Unicode 数据类型,数据比较将基于 Unicode 码位。对于 Unicode 数据类型的二进制排序规则,数据排序将不考虑区域设置。例如,对 Unicode 数据应用 Latin_1_General_BIN 和 Japanese_BIN,会得到完全相同的排序结果。

SQL Server 中以“_BIN”结尾的早期二进制排序规则对 Unicode 数据执行的是不完整的逐码位比较。更早的 SQL Server 二进制排序规则将第一个字符作为 WCHAR 比较,接下来是逐字节比较。为了实现向后兼容,将不更改现有的二进制排序规则语义。

使用 BIN 排序规则的准则

如果您的 SQL Server 应用程序与使用二进制排序规则的旧版 SQL Server 交互,那么请继续使用二进制排序规则。二进制排序规则可能更适合混合环境。

使用 BIN2 排序规则的准则

此版本的 SQL Server 中的二进制排序规则包含一组纯码位比较排序规则。您可以迁移到二进制排序规则,以利用真正的码位比较,并且应该使用新的二进制排序规则来开发新的应用程序。BIN2 后缀标识了实现新的码位排序规则语义的排序规则名称。另外,二进制排序还有一个与 BIN2 对应的比较标志。其优点包括更简单的应用程序开发和更清楚的语义。