Asp.net 无法解决排序规则冲突?

Asp.net 无法解决排序规则冲突?,asp.net,sql-server,Asp.net,Sql Server,我有这个错误,我不知道如何修复它 无法解决“Arabic_CI__AS”和之间的排序规则冲突 等于操作中的“SQL拉丁1\u常规\u CP1\u CI\u AS” 注意:我已经从数据库选项-->排序规则更改了排序规则 我把它从“阿拉伯语”改为“SQL拉丁语通用”和“CP1拉丁语通用” 而我仍然得到同样的错误 有没有解决此问题的建议?只有在创建新对象而不指定排序规则时,数据库排序规则才适用 当您将其从“阿拉伯文CI_AS”更改为“SQL\u Latin1\u General\u CP1\u CI_

我有这个错误,我不知道如何修复它

无法解决“Arabic_CI__AS”和之间的排序规则冲突 等于操作中的“SQL拉丁1\u常规\u CP1\u CI\u AS”

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

我把它从“阿拉伯语”改为“SQL拉丁语通用”和“CP1拉丁语通用”

而我仍然得到同样的错误

有没有解决此问题的建议?

只有在创建新对象而不指定排序规则时,数据库排序规则才适用

当您将其从“阿拉伯文CI_AS”更改为“SQL\u Latin1\u General\u CP1\u CI_AS”时,数据库中的所有文本列仍将被整理
阿拉伯文CI_AS
。您可以使用

select object_name(object_id), name, collation_name
from sys.columns
where collation_name like '%Arabic%'
解决此问题的一个方法是将
与数据库\u DEFAULT
进行比较,例如

SELECT *
FROM TBL1
INNER JOIN TBL2 on X = Y COLLATE DATABASE_DEFAULT

上有一个脚本试图更改整个数据库的排序规则,但

  • 我个人没有试过
  • 在尝试之前,请确保数据库备份良好
  • 它看起来不会处理具有索引视图、外键/默认约束等的复杂数据库

  • 另外,新的临时表使用tempdb的排序规则,而不是当前数据库的排序规则。当我从sys.columns运行select object_name(object_id)、name、collation_name时,排序规则名称(如“%Arabic%”)根本不返回任何数据!!但是,当我将其更改为从sys.columns中选择object\u name(object\u id)、name、collation\u name,其中collation\u name(如“%SQL\u Latin1\u General\u CP1\u CI\u AS%”将返回所有数据!那么问题出在哪里??我还使用了这一个修改数据库dbname,校对SQL\u拉丁语1\u通用语言\u CP1\u CI\u AS,但没有任何进展@朝觐,在这种情况下,试试这个
    selectdatabasepropertyex('master','collation')
    可能是服务器(和tempdb)是阿拉伯语,数据库是拉丁语。ahm ahm。。。我可以知道怎么换这个吗@朝觐真是一团糟。通常,我只是使用与数据库相同的排序规则创建一个新实例,并附加到那里。要使特定查询正常工作,请使用
    collatedatabase\u default
    ,如上所示
    SELECT *
    FROM TBL1
    WHERE X = Y COLLATE DATABASE_DEFAULT