在等于操作中无法解决“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AI”之间的排序规则冲突

时间:2012-02-22 10:38:41

标签: sql-server-2008

因为我已经从台式机转移到笔记本电脑,所以我得到了下面的校对错误。我的数据库有数百个存储过程,所以任何解决方案,如覆盖某些查询或修复列的排序规则对我来说都是不可能的。

“无法解决”SQL_Latin1_General_CP1_CI_AS“和”Latin1_General_CI_AI“之间的排序规则冲突等于操作”

我的问题不是唯一的,我已经搜索了很多,但是可用的解决方案建议我用一些不可行的代码覆盖查询。请建议一些可能避免这种整理的解决方案。

我试过这个来改变我的数据库整理。

ALTER DATABASE testDB  
COLLATE French_CI_AI ;  
GO  

感谢。

3 个答案:

答案 0 :(得分:114)

在连接具有不同排序规则的表时,只需使用以下语法即时整理。我整合系统所以必须做这个分配。

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

答案 1 :(得分:6)

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

答案 2 :(得分:-1)

只需添加此行 - >您加入时的SQL_Latin1_General_CP1_CI_AS。而已 :) https://premkt.blogspot.my/2016/12/error-cannot-resolve-collation-conflict.html