SonarQube:是数据库还是实例的排序规则?

Posted

技术标签:

【中文标题】SonarQube:是数据库还是实例的排序规则?【英文标题】:SonarQube: Is the Collation for the Database or the Instance? 【发布时间】:2017-06-17 03:45:28 【问题描述】:

根据 SonarQube 文档“安装服务器”(https://docs.sonarqube.org/display/sonar/installing+the+server),对于 Microsoft SQL Server 主机,“排序规则必须区分大小写 (CS) 和区分重音 (AS)。”

文档不清楚是否必须设置排序规则:

对于 SQL Server 实例,或 数据库

如果 SQL Server(特别是 tempdb)的排序规则是“重音不敏感”并且数据库排序规则是“重音敏感”,SonarQube 是否支持这种配置?

【问题讨论】:

【参考方案1】:

如果 SQL Server(特别是 tempdb)的排序规则是“重音不敏感”并且数据库排序规则是“重音敏感”,SonarQube 是否支持这种配置?

由于文档含糊不清(他们可能使用 SQL Server 的程度不足以了解可以设置排序规则的不同级别),因此在这里获得答案的唯一两种方法是:

    联系他们的社区:https://www.sonarqube.org/community/feedback/。这是最好的选择。

    将其安装在具有不区分重音的默认排序规则的实例上并进行测试。没有理由不试试这个。

SonarQube 是否正确处理这个问题取决于它是如何编码的。他们可能会在临时表中的字符串列上进行联接,并且数据库和实例之间的排序规则的任何差异可能都可能导致错误,但前提是他们在创建临时表时没有特别声明排序规则。

此外,他们的应用程序可能需要区分重音,因为它们有一些变量名称和/或光标名称和/或(不太可能)GOTO 标签名称可能等同于不区分重音,否则应该被视为不同的。实例级排序规则控制这些区域,因此会影响这些项目的名称解析。当然,这很容易测试,因为如果声明两个在重音敏感下被视为不同名称的变量,如果足够接近以在重音不敏感下被认为相同,则会导致解析错误。不过,请联系他们的社区。​​p>

【讨论】:

以上是关于SonarQube:是数据库还是实例的排序规则?的主要内容,如果未能解决你的问题,请参考以下文章

修改SQL Server 排序规则 (未能排它地锁定数据库以执行该操作)

排序算法之桶排序

SonarQube - 自定义规则,以防止调用某些静态方法

sonarqube连接数据库的作用是啥?

关于mysql获取数据排序order by的问题

插入排序复习