无法解决整理冲突?

HAJ*_*JAJ 2 sql-server asp.net

我有这个错误,我不知道如何解决它

无法在等于操作的情况下解决"Arabic_CI_AS"和"SQL_Latin1_General_CP1_CI_AS"之间的排序规则冲突.

注意:我已经从数据库选项 - >排序规则中更改排序规则

我将它从"Arabic_CI_AS"更改为"SQL_Latin1_General_CP1_CI_AS"

我仍然得到同样的错误!!
有什么建议可以解决这个问题?

Ric*_*iwi 5

只有在未指定排序规则的情况下创建NEW对象时,才应用数据库排序规则.

当您将其从"Arabic_CI_AS"更改为"SQL_Latin1_General_CP1_CI_AS"时,仍会整理数据库中的所有文本列Arabic_CI_AS.你可以用它来检查

select object_name(object_id), name, collation_name
from sys.columns
where collation_name like '%Arabic%'
Run Code Online (Sandbox Code Playgroud)

这个问题的一个补丁是COLLATE DATABASE_DEFAULT反对比较,例如

SELECT *
FROM TBL1
INNER JOIN TBL2 on X = Y COLLATE DATABASE_DEFAULT
Run Code Online (Sandbox Code Playgroud)

要么

SELECT *
FROM TBL1
WHERE X = Y COLLATE DATABASE_DEFAULT
Run Code Online (Sandbox Code Playgroud)

等等

此站点上有一个脚本尝试更改整个数据库中的排序规则,但是

  1. 我没有亲自尝试过
  2. 在尝试之前,请确保您拥有良好的数据库备份
  3. 看起来它不会处理具有索引视图,外键/默认约束等的复杂数据库