以 SET COLLATION 指定对照顺序

对当前会话中先前访问的所有数据库服务器,SET COLLATION 以 locale 指定的对照顺序替代当前的对照顺序。 例如,此示例指定中文的对照顺序:
EXEC SQL set collation "zh_cn.gb18030-2000";

如果在此会话中的下一数据库服务器的活动是对 NCHAR 或 NVARCHAR 值排序,则遵循中文的对照顺序。

在同一会话中,假设下列 SET NO COLLATION 语句恢复对对照顺序的 DB_LOCALE 设置:
EXEC SQL set no collation;

在 SET NO COLLATION 执行之后,在同一会话中的后续的对照基于该 DB_LOCALE 设置。然而,您使用中文对照顺序创建的任何数据库对象,诸如检查约束、索引、准备好的对象、触发器或 UDR,会继续将中文对照应用于 NCHAR 和 NVARCHAR 数据类型。

在 NLSCASE INSENSITIVE 数据库中的对照

在 NLSCASE INSENSITIVE 数据库中,在 NCHAR 和 NVARCHAR 数据上的对照操作不区分字母大小写,以便于数据库服务器将有相同序列的字母组成的字符串中的大小写变量按重复的字符串处理。对照的列表按照其检索的顺序来对这些区分大小写的重复的内容排列,因此,带有字符串 alpha 的大小写变量的对照的列表可能以任何顺序出现,比如下列顺序,不管变量的大小写:

alpha
        Alpha
        alpha
        ALPHA
        Alpha
      

要获取更多信息,请参阅 在 NLSCASE INSENSITIVE 数据库中重复的行在区分大小写的数据库中的 NCHAR 和 NVARCHAR 表达式