【问题标题】:SQL Server: Choosing a collationSQL Server:选择排序规则
【发布时间】:2020-12-16 10:36:19
【问题描述】:

我有一个 SQL Server 数据库,我正在尝试选择合适的排序规则。

现在,默认选择:SQL_Latin1_General_CP1_CI_AS。然而,这还不够——我需要同时包含拉丁文(包括Č、Ć、Š...)和西里尔字符(Ш、Ж...)。是否有包含所有这些的字符集,或者更好的方法来启用 UTF8 作为排序规则?

【问题讨论】:

  • SQL Server 2019 支持 UTF-8。否则我建议使用nvarchar
  • @Larnu 我使用的是 SQL Server 2019,那么如何设置 UTF-8?它不是排序规则下拉菜单中的选项之一。
  • 那么SELECT * FROM sys.fn_helpcollations() WHERE name LIKE '%UTF8%'; 不返回任何行吗?如果是这样,您没有使用 SQL Server 2019,或者没有使用最新兼容模式的数据库。

标签: sql sql-server character-encoding collation


【解决方案1】:

您正在使用 SQL 排序规则。 windows排序规则下支持UTF-8。

即在您的示例中 SQL_Latin1_General_CP1_CI_AS 是 SQL 排序规则,Latin1_General_100_CI_AS 是可比较的。但是,如果您查看这些排序规则。也有 UTF8 的。

例如,有 Latin1_General_100_CI_AS_KS_WS_SC_UTF8

这是:

  • 不区分大小写
  • 重音敏感
  • 假名敏感
  • 宽度敏感
  • 补充字符支持
  • 支持 UTF8

UTF8 不存在于仅 SQL 排序规则中。并且根据您的实际服务器实例版本,可能也不可用。

Msdn 链接:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 2012-06-10
    • 2011-05-05
    • 2010-12-22
    • 2012-12-18
    • 2012-06-08
    • 2010-10-07
    • 2012-01-21
    相关资源
    最近更新 更多