设置或更改数据库排序规则

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中设置和更改数据库排序规则。 如果未指定排序规则,则使用服务器排序规则。

本主题内容

在您开始之前

局限性与限制

  • 仅限 Windows Unicode 的排序规则只能与 COLLATE 子句一起使用,以将排序规则应用于ncharnvarchar数据类型的列级别和ntext表达式级数据。 它们不能与 COLLATE 子句一起使用,以更改数据库或服务器实例的排序规则。

  • 如果所引用对象的指定排序规则或排序规则使用 Windows 不支持的代码页,则数据库引擎将显示错误。

建议

安全

权限

创建数据库
需要 master 数据库中的 CREATE DATABASE 权限,或者需要 CREATE ANY DATABASE 或 ALTER ANY DATABASE 权限。

修改数据库
需要对数据库拥有 ALTER 权限。

使用 SQL Server Management Studio

设置或更改数据库排序规则

  1. 对象资源管理器中,连接到 SQL Server 数据库引擎的实例,展开该实例,然后展开 “数据库”。

  2. 如果要创建新数据库,请右键单击 “数据库 ”,然后单击“ 新建数据库”。 如果不希望默认排序规则,请单击“ 选项” 页,然后从 “排序规则 ”下拉列表中选择排序规则。

    或者,如果数据库已存在,请右键单击所需的数据库,然后单击“ 属性”。 单击“ 选项” 页,然后从“ 排序规则 ”下拉列表中选择排序规则。

  3. 完成后,单击“ 确定”。

使用 Transact-SQL

设置数据库排序规则

  1. 连接到数据库引擎。

  2. 在标准栏中,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行。 此示例演示如何使用 COLLATE 子句指定排序规则名称。 该示例创建使用Latin1_General_100_CS_AS_SC排序规则的数据库MyOptionsTest。 创建数据库后,执行 SELECT 该语句以验证设置。

USE master;  
GO  
IF DB_ID (N'MyOptionsTest') IS NOT NULL  
DROP DATABASE MyOptionsTest;  
GO  
CREATE DATABASE MyOptionsTest  
COLLATE Latin1_General_100_CS_AS_SC;  
GO  
  
--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  
  

更改数据库排序规则

  1. 连接到数据库引擎。

  2. 在标准栏中,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行。 此示例演示如何使用 ALTER DATABASE 语句中的 COLLATE 子句更改排序规则名称。 执行SELECT语句以验证更改。

USE master;  
GO  
ALTER DATABASE MyOptionsTest  
COLLATE French_CI_AS ;  
GO  
  
--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  
  

另请参阅

排序规则和 Unicode 支持
sys.fn_helpcollations(Transact-SQL)
sys.databases (Transact-SQL)
SQL Server 排序规则名称 (Transact-SQL)
Windows 排序规则名称(Transact-SQL)
COLLATE (Transact-SQL)
排序规则优先级 (Transact-SQL)
CREATE TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER DATABASE (Transact-SQL)