在 SQL Server 中更改数据库排序规则的风险和影响

Posted

技术标签:

【中文标题】在 SQL Server 中更改数据库排序规则的风险和影响【英文标题】:Risk and effects of changing database collation in SQL Server 【发布时间】:2016-06-09 20:20:07 【问题描述】:

由于我的 SQL Server 2012 实例使用的排序规则 (Latin1_General_CI_AS) 与正在使用的某些数据库 (SQL_Latin1_General_CP1_CI_AI) 不同,因此我正在评估使用不同于 SQL Server 的排序规则更改数据库排序规则的可能风险实例。

我检索了数百个程序来执行此步骤。我不清楚的是要了解执行此类操作是否存在一些限制或风险。

感谢您的任何回复。

【问题讨论】:

检查这个以及 TempDB 问题:***.com/questions/21332105/… 【参考方案1】:

要了解风险意味着您需要了解差异。我们无法告诉您对系统的影响。不同之处在于新的排序规则将开始寻找以前没有的匹配项。

使用您当前的排序规则考虑此查询。这不会返回一行,因为这两个值不相等。

select 1
where 'e' = 'é' collate Latin1_General_CI_AS

现在,由于这两个字符都是字母“e”,但带有不同的重音,当您忽略重音时,它们将相等。

select 1
where 'e' = 'é' collate SQL_Latin1_General_CP1_CI_AI  

同样,由于我们不了解您的系统,因此我们无法判断您的系统中可能存在哪些潜在问题。

【讨论】:

以上是关于在 SQL Server 中更改数据库排序规则的风险和影响的主要内容,如果未能解决你的问题,请参考以下文章

更改SQL Server 2012 数据库排序规则

更改 SQL Server 数据库排序规则

SQL Server 不区分大小写的排序规则

数据库排序规则更改问题 (SQL Server 2008)

如何在 SQL Server 2008 R2 中更改服务器排序规则

SQL Server 排序规则的影响