我们遇到的情况是,开发和生产 SQL Server 之间的数据库、表和某些列的排序规则不同,这对开发造成了严重破坏。事情会在开发上工作,然后由于升级时的排序规则冲突而中断,数据和结构将从产品复制到开发,这又会因为冲突等而破坏开发上的查询。我们将通过显式定义有时会在查询中使用 COLLATION 选项,或者设置有问题的表中每列的排序规则来解决该问题。前者似乎对性能造成了影响,而后者则是 PITA。
是否有任何脚本或任何内容可以显示数据库和对象上的排序规则差异或信息,或者有关于自动协调差异以便我们可以同步事物的方法的任何建议吗?
此外,关于调试查询中排序规则冲突的任何提示也很好......我永远不知道冲突实际上在哪里,最终不得不逐行检查并覆盖它......叹息......一团糟。
感谢您的任何想法!
一般来说,在临时表、表变量等上使用“COLLATE DATABASE_DEFAULT”
排序规则冲突通常会发生在服务器与数据库排序规则冲突的情况下,在本例中服务器是 tempdb。
坦率地说,我会努力调整您的排序规则,并让每个数据库都有一个排序规则。
如果您在服务器、数据库和列之间进行混合和匹配,那么就没有灵丹妙药。您可以首先查找代码中的所有 COLLATE 子句(见上文),然后确保所有列都已删除排序规则......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)