我有这个错误,我不知道如何解决它
Cannot resolve the collation conflict between "Arabic_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
注意:我已经从数据库选项中更改了排序规则 --> 排序规则
我将其从“Arabic_CI_AS”更改为“SQL_Latin1_General_CP1_CI_AS”
我仍然遇到同样的错误!!
有什么建议可以解决这个问题吗?
最佳答案
数据库排序规则仅在您创建 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%'
这个问题的一个补丁是把
COLLATE DATABASE_DEFAULT
反对比较,例如SELECT *
FROM TBL1
INNER JOIN TBL2 on X = Y COLLATE DATABASE_DEFAULT
或者
SELECT *
FROM TBL1
WHERE X = Y COLLATE DATABASE_DEFAULT
等等
this site上有脚本试图更改整个数据库的排序规则,但是
关于asp.net - 无法解决排序规则冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336328/