本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中设置和更改数据库排序规则。 如果未指定排序规则,则使用服务器排序规则。
本主题内容
准备工作:
若要设置或更改数据库排序规则,请使用:
在您开始之前
局限性与限制
仅限 Windows Unicode 的排序规则只能与 COLLATE 子句一起使用,以将排序规则应用于
nchar、nvarchar数据类型的列级别和ntext表达式级数据。 它们不能与 COLLATE 子句一起使用,以更改数据库或服务器实例的排序规则。如果所引用对象的指定排序规则或排序规则使用 Windows 不支持的代码页,则数据库引擎将显示错误。
建议
可以在 Windows 排序规则名称(Transact-SQL) 和 SQL Server 排序规则名称(Transact-SQL)中找到受支持的排序规则名称;也可以使用 sys.fn_helpcollations (Transact-SQL) 系统函数。
更改数据库排序规则时,请更改以下内容:
系统表中的任何
char、varchar、text、ncharnvarchar或ntext列都更改为新的排序规则。存储过程和用户定义的函数的所有现有
char、varchar、text、nchar、nvarchar或ntext参数和标量返回值都更改为新的排序规则。char、varchar、text、nchar、nvarchar或ntext系统数据类型以及所有基于这些系统数据类型的用户定义数据类型都更改为新的默认排序规则。
可以使用 ALTER DATABASE 语句的 COLLATE 子句更改在用户数据库中创建的任何新对象的排序规则。 此语句不会更改任何现有用户定义的表中列的排序规则。 可以使用 ALTER TABLE 的 COLLATE 子句更改这些项。
安全
权限
创建数据库
需要 master 数据库中的 CREATE DATABASE 权限,或者需要 CREATE ANY DATABASE 或 ALTER ANY DATABASE 权限。
修改数据库
需要对数据库拥有 ALTER 权限。
使用 SQL Server Management Studio
设置或更改数据库排序规则
在 对象资源管理器中,连接到 SQL Server 数据库引擎的实例,展开该实例,然后展开 “数据库”。
如果要创建新数据库,请右键单击 “数据库 ”,然后单击“ 新建数据库”。 如果不希望默认排序规则,请单击“ 选项” 页,然后从 “排序规则 ”下拉列表中选择排序规则。
或者,如果数据库已存在,请右键单击所需的数据库,然后单击“ 属性”。 单击“ 选项” 页,然后从“ 排序规则 ”下拉列表中选择排序规则。
完成后,单击“ 确定”。
使用 Transact-SQL
设置数据库排序规则
连接到数据库引擎。
在标准栏中,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。 此示例演示如何使用 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
更改数据库排序规则
连接到数据库引擎。
在标准栏中,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。 此示例演示如何使用 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)