在等于操作中的排序冲突:"Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AI" in the equal to operation"?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (233)

我的数据库有数百个存储过程,因此任何解决方案,比如重写某些查询或修复列的排序规则,对我来说都是不可能的,报错:

"Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AI" in the equal to operation"

我的问题并不是唯一的,我已经搜索了很多,但是可用的解决方案建议我用一些不可行的代码覆盖查询。请提出一些解决办法,以避免这种校对问题。

我尝试过这样做来改变我的数据库排序规则。

ALTER DATABASE testDB  
COLLATE French_CI_AI ;  
GO  
提问于
用户回答回答于
select * from [Product] p join [category] c 
on  
c.[Name] collate SQL_Latin1_General_CP1_CI_AS 
= 
p.[Name] collate SQL_Latin1_General_CP1_CI_AS
用户回答回答于
USE master;
GO
ALTER DATABASE PRATAP
COLLATE Latin1_General_CI_AS_KS_WS ;
GO

--Verify the collation setting.
SELECT name, collation_name
FROM sys.databases
WHERE name = N' PRATAP ';
GO

扫码关注云+社区

领取腾讯云代金券