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

管理 Amazon RDS for Microsoft SQL Server 的排序规则和字符集

本主题提供有关如何在 Amazon RDS 中管理 Microsoft SQL Server 的排序规则和字符集的指导。它说明了如何在数据库创建期间配置排序规则并在以后对其进行修改,从而确保根据语言和区域设置要求正确处理文本数据。此外,它还介绍了在 Amazon RDS 中的 SQL Server 环境内保持兼容性和性能的最佳实践。

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

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

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

注意

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

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

排序规则 描述

Arabic_CI_AS

Arabic,不区分大小写,区分重音,不区分假名,不区分全半角

Chinese_PRC_BIN2

Chinese-PRC,二进制代码点排序顺序

Chinese_PRC_CI_AS

Chinese-PRC,不区分大小写,区分重音,不区分假名,不区分全半角

Danish_Norwegian_CI_AS

Danish-Norwegian,不区分大小写,区分重音,不区分假名,不区分全半角

Finnish_Swedish_CI_AS

芬兰语、瑞典语和瑞典语(芬兰)不区分大小写,区分重音,不区分假名,不区分全半角

French_CI_AS

French,不区分大小写,区分重音,不区分假名,不区分全半角

Hebrew_BIN

Hebrew,二进制排序

Hebrew_CI_AS

Hebrew,不区分大小写,区分重音,不区分假名,不区分全半角

Japanese_BIN

Japanese,二进制排序

Japanese_CI_AS

Japanese,不区分大小写,区分重音,不区分假名,不区分全半角

Japanese_CS_AS

Japanese,区分大小写,区分重音,不区分假名,不区分全半角

Japanese_XJIS_140_CI_AS

Japanese,不区分大小写,区分重音,不区分假名,不区分全半角,补充字符,不区分变体选择器

Japanese_XJIS_140_CI_AS_KS_VSS

Japanese,不区分大小写,区分重音,区分假名,不区分全半角,补充字符,区分变体选择器

Japanese_XJIS_140_CI_AS_VSS

Japanese,不区分大小写,区分重音,不区分假名,不区分全半角,补充字符,区分变体选择器

Japanese_XJIS_140_CS_AS_KS_WS

Japanese,区分大小写,区分重音,区分假名,区分全半角,补充字符,不区分变体选择器

Korean_Wansung_CI_AS

Korean_Wansung,不区分大小写,区分重音,不区分假名,不区分全半角

Latin1_General_100_BIN

Latin1-General-100,二进制排序

Latin1_General_100_BIN2

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

Latin1_General_100_BIN2_UTF8

Latin1-General-100,二进制代码点排序顺序,UTF-8 编码

Latin1_General_100_CI_AS

Latin1-General-100,不区分大小写,区分重音,不区分假名,不区分全半角

Latin1_General_100_CI_AS_SC_UTF8

Latin1-General-100,不区分大小写,区分重音,补充字符,UTF-8 编码

Latin1_General_BIN

Latin1-General,二进制排序

Latin1_General_BIN2

Latin1-General,二进制代码点排序顺序

Latin1_General_CI_AI

Latin1-General,不区分大小写,不区分重音,不区分假名,不区分全半角

Latin1_General_CI_AS

Latin1-General,不区分大小写,区分重音,不区分假名,不区分全半角

Latin1_General_CI_AS_KS

Latin1-General,不区分大小写,区分重音,区分假名,不区分全半角

Latin1_General_CS_AS

Latin1-General,区分大小写,区分重音,不区分假名,不区分全半角

Modern_Spanish_CI_AS

Modern_Spanish,不区分大小写,区分重音,不区分假名,不区分全半角

Polish_CI_AS

Polish,不区分大小写,区分重音,不区分假名,不区分全半角

SQL_1xCompat_CP850_CI_AS

对于 Unicode 数据为 Latin1-General,不区分大小写,区分重音,不区分假名,不区分全半角,对于非 Unicode 数据,为代码页 850 上的 SQL Server 排序顺序 49

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_BIN

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

SQL_Latin1_General_CP850_BIN2

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

SQL_Latin1_General_CP850_CI_AI

对于 Unicode 数据为 Latin1-General,不区分大小写,不区分重音,不区分假名,不区分全半角;对于非 Unicode 数据,为代码页 850 上的 SQL Server 排序顺序 44

SQL_Latin1_General_CP850_CI_AS

对于 Unicode 数据为 Latin1-General,不区分大小写,区分重音,不区分假名,不区分全半角,对于非 Unicode 数据,为代码页 850 上的 SQL Server 排序顺序 42

SQL_Latin1_General_CP1256_CI_AS

对于 Unicode 数据为 Latin1-General,不区分大小写,区分重音,不区分假名,不区分全半角;对于非 Unicode 数据,为代码页 1256 上的 SQL Server 排序顺序 146

Thai_CI_AS

Thai,不区分大小写,区分重音,不区分假名,不区分全半角

Turkish_CI_AS

Turkish,不区分大小写,区分重音,不区分假名,不区分全半角

选择排序规则:

  • 如果您使用 Amazon RDS 控制台,则在创建新的数据库实例时,请选择 Additional configuration(其他配置),然后在 Collation(排序规则)字段中输入排序规则。有关更多信息,请参阅 创建 Amazon RDS 数据库实例

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

  • 如果使用 Amazon RDS API,请在 CharacterSetName 操作中使用 CreateDBInstance 参数。有关更多信息,请参阅 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 支持: