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

Tec*_*ile 63 sql-server-2008

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

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

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

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

ALTER DATABASE testDB  
COLLATE French_CI_AI ;  
GO  
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 117

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

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
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)