【发布时间】:2020-06-09 06:42:47
【问题描述】:
在我处理的一些程序中,我编写了以下代码:
update a
set a.custName = b.custName
from #x as a inner join pl_Customer as b on a.Company_Code = b.Company_Code and a.cust = b.Cust
我收到了这个错误:
无法解决“Hebrew_CI_AS”和“Hebrew_CI_AS”之间的排序规则冲突 “SQL_Latin1_General_CP1_CI_AS”中的等于操作。
我试着用这个来解决它:
update a
set a.custName = b.custName
from #x as a inner join pl_Customer as b on a.Company_Code = b.Company_Code and a.cust = b.Cust
collate Latin1_General_CI_AI;
但它仍然是错误的。
【问题讨论】:
-
您的表定义似乎不一致。修复它,问题就消失了。
-
我该如何解决?
-
你为什么用不同的排序规则创建一个临时表?
-
两个 cust 列应具有相同的排序规则。
-
@ValiMaties 这将是一个坏主意 - 在这种情况下服务器不能使用索引并且必须执行完整扫描。此外,它是一个临时表。必须由应用程序或存储过程来创建它。通过修复该脚本来避免问题比事后尝试从中恢复要容易得多
标签: sql sql-server collation collate