Microsoft SQL Server 的排序规则和字符集 - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Microsoft SQL Server 的排序规则和字符集

SQL Server 支持多个级别的排序规则。您可以在创建数据库实例时设置默认服务器排序规则。您可以在数据库、表或列级别覆盖排序规则。

Microsoft SQL Server 的服务器级别排序规则

在创建 Microsoft SQL Server 数据库实例时,您可以设置所要使用的服务器排序规则。如果您未选择其他排序规则,则服务器级别排序规则默认为 SQL_Latin1_General_CP1_CI_AS。服务器排序规则默认应用到所有数据库和数据库对象。

注意

从数据库快照还原时,无法更改排序规则。

Amazon RDS 当前支持以下服务器排序规则:

排序规则 说明

Chinese_PRC_CI_AS

Chinese-PRC,不区分大小写,区分音调,不区分假名,不区分字宽

Finnish_Swedish_CI_AS

芬兰语、瑞典语和瑞典语(芬兰)不区分大小写,区分音调,不区分假名,不区分字宽

French_CI_AS

French,不区分大小写,区分音调,不区分假名,不区分字宽

Hebrew_BIN

Hebrew,二进制排序

Japanese_CI_AS

Japanese,不区分大小写,区分音调,不区分假名,不区分字宽

Korean_Wansung_CI_AS

Korean_Wansung,不区分大小写,区分音调,不区分假名,不区分字宽

Latin1_General_100_BIN

Latin1-General-100,二进制排序

Latin1_General_100_BIN2

Latin1-General-100,二进制代码点比较排序

Latin1_General_100_CI_AS

Latin1-General-100,不区分大小写,区分音调,不区分假名,不区分字宽

Latin1_General_BIN

Latin1-General,二进制排序

Latin1_General_CI_AI

Latin1_General,不区分大小写,不区分音调,不区分假名,不区分字宽

Latin1_General_CI_AS

Latin1_General,不区分大小写,区分音调,不区分假名,不区分字宽

Latin1_General_CS_AS

Latin1-General,区分大小写,区分音调,不区分假名,不区分字宽

Modern_Spanish_CI_AS

Modern_Spanish,不区分大小写,区分音调,不区分假名,不区分字宽

SQL_Latin1_General_CP1_CI_AI

对于 Unicode 数据为 Latin1_General,不区分大小写,不区分音调,不区分假名,不区分字宽;对于非 Unicode 数据,为代码页 1252 上的 SQL Server 排序顺序 54

SQL_Latin1_General_CP1_CI_AS(默认值)

对于 Unicode 数据为 Latin1_General,不区分大小写,区分音调,不区分假名,不区分字宽;对于非 Unicode 数据,为代码页 1252 上的 SQL Server 排序顺序 52

SQL_Latin1_General_CP1_CS_AS

对于 Unicode 数据为 Latin1_General,区分大小写,区分音调,不区分假名,不区分字宽;对于非 Unicode 数据,为代码页 1252 上的 SQL Server 排序顺序 51

SQL_Latin1_General_CP437_CI_AI

对于 Unicode 数据为 Latin1_General,不区分大小写,不区分音调,不区分假名,不区分字宽;对于非 Unicode 数据,为代码页 437 上的 SQL Server 排序顺序 34

SQL_Latin1_General_CP850_BIN2

Latin1-General,对于 Unicode 数据为二进制代码点比较排序,对于非 Unicode 数据为代码页 850 上的 SQL Server 排序顺序 40

SQL_Latin1_General_CP850_CI_AS

对于 Unicode 数据为 Latin1_General,不区分大小写,区分音调,不区分假名,不区分字宽,对于非 Unicode 数据,为代码页 850 上的 SQL Server 排序顺序 42

选择排序规则:

  • 如果使用 Amazon RDS 控制台,在创建新的数据库实例时,请选择其他配置,然后从数据库选项下面的排序规则菜单中选择排序规则。有关更多信息,请参阅创建 Amazon RDS 数据库实例

  • 如果使用 AWS CLI,请在 create-db-instance 命令中使用 --character-set-name 选项。有关更多信息,请参阅 create-db-instance

  • 如果使用 Amazon RDS API,请在 CreateDBInstance 操作中使用 CharacterSetName 参数。有关更多信息,请参阅 CreateDBInstance

Microsoft SQL Server 的数据库级别排序规则

当创建新数据库或数据库对象时,您可以通过覆盖排序规则在数据库、表或列级别更改默认排序规则。例如,如果您的默认服务器排序规则为 SQL_Latin1_General_CP1_CI_AS,您可将其更改为 Mohawk_100_CI_AS 以支持 Mohawk 排序规则。如果需要,甚至可以对查询中的参数进行类型转换以便使用不同的排序规则。

例如,以下查询将 AccountName 列的默认排序规则更改为 Mohawk_100_CI_AS

CREATE TABLE [dbo].[Account] ( [AccountID] [nvarchar](10) NOT NULL, [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL ) ON [PRIMARY];

Microsoft SQL Server 数据库引擎通过内置 NCHAR、NVARCHAR 和 NTEXT 数据类型支持 Unicode。例如,如果您需要 CJK 支持,请对字符存储使用这些 Unicode 数据类型,并在创建数据库和表时覆盖默认的服务器排序规则。下面列出了一些由 Microsoft 提供的链接,其中包括 SQL Server 的排序规则和 Unicode 支持: