我读了很多关于“选择正确的排序规则”和类似的东西,但我仍然没有解决以下问题:
我们得到了以下星座:我们将应用程序的数据库从 Advantage Database 切换到 MsSQL Server 2014。
所有数据库都具有相同的排序规则“Latin1_General_CI_AS”(ReportServer 和 ReportServerTempDB 除外)。我们之所以选择这种排序规则,是因为“Latin1_General_CS_AS”会对我们现有的查询产生很大影响,因为查询中的表名会更改为区分大小写。
为了保留查询的数据顺序,我们使用“Latin1_General_CS_AS”创建了字符串列。
我们实际遇到的问题是,由于排序规则冲突,对临时表进行连接的查询会失败。我很清楚,TempDB 表具有“Latin1_General_CI_AS”作为排序规则,并在与物理表的字符串列连接时引发错误。
如果可以构建不区分大小写的查询而不考虑数据库排序规则,我们就可以解决我们的问题。
反过来,我们可以通过将数据库的排序规则更改为“Latin1_General_CS_AS”并将查询中的所有表名更正为与原始表名相同来解决问题。
如果我想到的第一个解决方案是不可能的,有人对如何解决排序问题有好的建议吗?
第二种解决方案实际上是不可行的。我们从不关心大小写,只是有太多的数据库交互,因为它值得纠正这一切。
我们的问题可能有第三种或第四种解决方案吗?
Thx 4 提前帮助。