仅 Unicode 排序规则

Unicode 规范为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 规范将 Unicode 数据中的位模式一致地转换成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不必担心接收系统在将位模式转换成字符时是否会出错。

Unicode 使用 2 个字节对每个字符进行编码。采用双字节的单一规范将存在足够多不同的位模式 (65,536) 来覆盖最常用的商业语言。通过在整个系统中使用 Unicode 数据类型,可最大限度地减少字符转换问题。

使用 COLLATE

为仅 Unicode 数据指定的 Windows 仅 Unicode 排序规则(如 nchar、nvarchar 和 nvarchar(max))没有关联的代码页。

在 SQL Server 中,下列数据类型支持 Unicode 数据:

  • nchar

  • nvarchar

  • ntext

仅 Unicode 排序规则可以与 COLLATE 子句一起使用,将排序规则应用于列级和表达式级数据的 nchar、nvarchar 和 ntext 数据类型;但是,不能和 COLLATE 子句一起使用来更改数据库或服务器实例的排序规则。

管理服务器安装和客户端数据库应用程序之间的数据时仅 Unicode 排序规则非常有用。早期客户端应用程序通常安装在较早版本的操作系统上,此类客户端应用程序可能不能识别已应用于安装在较新操作系统上的 SQL Server 数据库或服务器的较新 Windows 排序规则。如果对服务器上的特定列级或表达式级数据应用了仅 Unicode 排序规则,则客户端不会尝试将传入数据映射到不正确的代码页,导入到客户端中的数据将保持字符的完整性。