当前位置: 首页 > 面试题库 >

SQL Server-有一种方法可以大规模解决排序规则冲突

穆宾白
2023-03-14
问题内容

在我们的开发人员和生产SQL
Server之间,数据库,表和某些列的排序规则存在差异,这对开发造成了严重破坏。事情将在dev上运行,然后在升级时由于归类冲突而中断,数据和结构将从prod复制到dev,这又由于冲突而中断对dev的查询,等等。我们将通过明确定义有时会在查询中使用COLLATION选项,或者在有问题的表中设置每一列的排序规则来解决该问题。前者似乎在性能上受到打击,而后者是PITA。

是否有任何脚本或任何东西可以显示数据库或对象上的排序规则差异或信息,或者有关自动调和差异以使我们保持同步的方式的建议?

此外,有关调试查询中的排序规则冲突的任何技巧也将很不错。我不知道冲突的实际位置,最终不得不逐行进行检查并覆盖它。一团糟。

感谢您的任何想法!


问题答案:

通常,在临时表,表变量等上使用“ COLLATE DATABASE_DEFAULT”

排序规则冲突通常发生在服务器与数据库的排序规则冲突中,在这种情况下,服务器为tempdb。

坦率地说,我将努力调整您的归类,并在每个数据库中全部归类。

如果您在服务器,数据库和列之间进行混合和匹配,那么就没有神奇的子弹了。您可以先在代码中查找所有COLLATE子句(请参见上文),然后确保删除所有列的排序规则…。



 类似资料:
  • 问题内容: 我有两个查询: 首先不起作用: 因为我得到错误: 第二部作品: 结构: 问题答案: 在两个表上使用。Hotels.TargetCode上的排序规则与on上的排序规则不同,因此DB不知道如何处理结果。 您可以强制其中一个排序规则与另一个排序规则匹配,或者将结果放入已定义排序规则的预定义临时表中。 编辑: 您可以使用类似…的方法来覆盖现有的排序规则。 …在查询中。这将使用带有collat​

  • 问题内容: 我正在尝试执行一些SQL,但是出现以下错误 但是似乎无法弄清楚问题出在哪里???任何帮助将不胜感激。 我的SQL技能是相当基本的,因此希望有人可以提供帮助 ~ ~ ~工作代码 ~ ~ ~ 设法使其正常工作,这是代码 问题答案: 归类基本上是告诉sql如何解释/比较/排序字符串的代码页。例如,可以区分大小写(不区分大小写)或忽略(不忽略)重音(如法语中的^)。有关更多信息,请参见此处。

  • 我的语法允许以下操作: 我从其他语法中抓了几个东西来玩。我的主要问题是我的expr规则。给定以下输入:,我期望解析树会找到..规则,但它将解释0。并不正确解析其余部分。 如果在我的0后面加上一个空格,就可以了: 谢了!

  • 问题内容: 我正在读的书说 SQL Server支持两种字符数据类型-常规和Unicode。 常规数据类型包括CHAR和VARCHAR,而Unicode数据类型包括NCHAR和NVARCHAR。不同之处在于,常规字符为每个字符使用一个字节的存储空间,而Unicode字符则每个字符需要两个字节的存储空间。每个字符只有一个字节的存储空间,因此,为一列选择常规字符类型会限制您只能选择英语以外的一种语言,

  • 问题内容: 查看我的产品日志后,我提到了一些错误: Alghout我在cfg教义下拥有UTF-8默认值: 看来我所有的MySQL表都在其中,所以我的问题是: 我可以为所有表手动将排序规则更改为,而没有任何复杂性/注意事项吗? 问题答案: 了解以下定义会有所帮助: 甲 字符编码 信息的每个符号是如何以二进制表示(并因此存储在计算机)。例如,符号(U + 00E9,拉丁小字母E急性)被编码为在UTF-

  • 1. UI 节点排序 UI 的渲染排序采用的是一个广度优先的排序方式,每一个 UITransform 组件身上都有一个 priority 属性,根据 priority 的值来调整节点顺序。排序从根节点下的子节点开始,根据子节点的优先级来确定整体的渲染结构,也就是根节点下的子节点的排序已经决定了最终的渲染顺序。每一个节点下的所有子节点的 priority 则用来确定在当前节点下的渲染顺序。 举个例子