你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

对 Azure Synapse Analytics 中 Synapse SQL 的数据库排序规则支持

排序规则为基于字符的数据类型提供区域设置、代码页、排序顺序和字符敏感度规则。 选择以后,需要排序规则信息的所有列和表达式会从数据库设置中继承所选排序规则。 可以重写默认继承,只需为基于字符的数据类型显式声明另一个排序规则即可。

本文适用于 Azure Synapse 工作区中的专用 SQL 池,有关专用 SQL 池(之前称为 SQL DW)的详细信息,请参阅专用 SQL 池(之前称为 SQL DW)支持的排序规则类型

新建专用 SQL 池数据库时,可以从 Azure 门户更改默认数据库排序规则。 利用此功能,可以更轻松地使用 3800 个受支持的数据库排序规则之一创建新数据库。

你可以在创建时使用 CREATE DATABASE 语句指定默认的无服务器 SQL 池数据库排序规则。

注意

在 Azure Synapse Analytics 中,查询文本(包括变量和常数等)始终使用数据库级别排序规则进行处理,而不是像在其他 SQL Server 产品/服务中一样使用服务器级别排序规则进行处理。

更改排序规则

若要更改专用 SQL 池数据库的默认排序规则,请更新预配体验中的“排序规则”字段。 例如,如果要将默认排序规则更改为区分大小写,则需要将排序规则从 SQL_Latin1_General_CP1_CI_AS 更改为 SQL_Latin1_General_CP1_CS_AS

注意

无法在现有专用 SQL 池数据库上更改排序规则。 如果需要在专用 SQL 池级别使用不同的排序规则,请使用所需的排序规则创建新的专用 SQL 池。

若要更改无服务器 SQL 池数据库的默认排序规则,可以使用 ALTER DATABASE 语句。

排序规则支持

下表显示了哪些服务支持哪些排序规则类型。

排序规则类型 无服务器 SQL 池 专用 SQL 池 - 数据库和列级别 专用 SQL 池 - 外部表(本机支持) 专用 SQL 池 - 外部表 (Hadoop/Polybase)
非 UTF-8 排序规则
UTF-8 No
Japanese_Bushu_Kakusu_140_* No
Japanese_XJIS_140_* No
SQL_EBCDIC1141_CP1_CS_AS No No No No
SQL_EBCDIC277_2_CP1_CS_AS No No No

查看当前排序规则

若要查看数据库的当前排序规则,可运行以下 T-SQL 代码片段:

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS Collation;

将“Collation”作为属性参数传递时,DatabasePropertyEx 函数将返回指定数据库的当前排序规则。 有关详细信息,请参阅 DATABASEPROPERTYEX

检查支持的排序规则

若要检查专用 SQL 池中支持的排序规则列表,请执行以下操作:

USE master
GO
SELECT * FROM sys.fn_helpcollations();

master 数据库运行 sys.fn_helpcollations 函数。

在以下文章中可以找到有关专用 SQL 池和无服务器 SQL 池最佳做法的更多信息: